tty: Fix low_latency BUG
Peter Hurley authored
The user-settable knob, low_latency, has been the source of
several BUG reports which stem from flush_to_ldisc() running
in interrupt context. Since 3.12, which added several sleeping
locks (termios_rwsem and buf->lock) to the input processing path,
the frequency of these BUG reports has increased.

Note that changes in 3.12 did not introduce this regression;
sleeping locks were first added to the input processing path
with the removal of the BKL from N_TTY in commit
a88a69c9,
'n_tty: Fix loss of echoed characters and remove bkl from n_tty'
and later in commit 38db8979,
'tty: throttling race fix'. Since those changes, executing
flush_to_ldisc() in interrupt_context (ie, low_latency set), is unsafe.

However, since most devices do not validate if the low_latency
setting is appropriate for the context (process or interrupt) in
which they receive data, some reports are due to misconfiguration.
Further, serial dma devices...
a9c3f68f
Name Last commit Last update
..
acpi Merge branches 'acpi-processor', 'acpi-hotplug', 'acpi-init', 'acpi-pm' and 'acpica'
asm-generic mm: Use ptep/pmdp_set_numa() for updating _PAGE_NUMA bit
clocksource drivers: clocksource: add support for ARM architected timer event stream
crypto crypto: scatterwalk - Use sg_chain_ptr on chain entries
drm Merge tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
dt-bindings Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
keys KEYS: Separate the kernel signature checking keyring from module signing
kvm KVM: arm-vgic: Set base addr through device API
linux tty: Fix low_latency BUG
math-emu math-emu: fix floating-point to integer overflow detection
media [media] saa6588: add support for non-blocking mode
memory ddr: add LPDDR2 data from JESD209-2
misc [media] altera-stapl: it is time to move out from staging
net net: sctp: Fix a_rwnd/rwnd management to reflect real state of the receiver's buffer
pcmcia pcmcia/ds.h: introduce helper for pcmcia_driver module boilerplate
ras edac: add support for error type "Info"
rdma IB: Report using RoCE IP based gids in port caps
rxrpc atomic: use <linux/atomic.h>
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
sound Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
target target: Simplify command completion by removing CMD_T_FAILED flag
trace intel_pstate: Remove energy reporting from pstate_sample tracepoint
uapi Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
video video: pxa168fb: Cleanup pxa168fb.h file
xen Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Kbuild UAPI: remove empty Kbuild files