android_kernel_xiaomi_sdm845/drivers/char
Hendrik Brueckner 7f8030d166 hvc_console: Remove tty->low_latency
This patch removes the tty->low_latency setting.

For irq based hvc_console backends the tty->low_latency must be set to 0,
because the tty_flip_buffer_push() function must not be called from IRQ context
(see drivers/char/tty_buffer.c).

For polled backends, the low_latency setting causes the bug trace below, because
tty_flip_buffer_push() is called within an atomic context and subsequent calls
might sleep due to mutex_lock.

BUG: sleeping function called from invalid context at /root/cvs/linux-2.6.git/kernel/mutex.c:207
in_atomic(): 1, irqs_disabled(): 0, pid: 748, name: khvcd
1 lock held by khvcd/748:
 #0:  (hvc_structs_lock){--..}, at: [<00000000002ceb50>] khvcd+0x58/0x12c
CPU: 0 Not tainted 2.6.29-rc1git #29
Process khvcd (pid: 748, task: 000000002fb9a480, ksp: 000000002f66bd78)
070000000000000a 000000002f66ba00 0000000000000002 (null)
       000000002f66baa0 000000002f66ba18 000000002f66ba18 0000000000104f08
       ffffffffffffc000 000000002f66bd78 (null) (null)
       000000002f66ba00 000000000000000c 000000002f66ba00 000000002f66ba70
       0000000000466af8 0000000000104f08 000000002f66ba00 000000002f66ba50
Call Trace:
([<0000000000104e7c>] show_trace+0x138/0x158)
 [<0000000000104f62>] show_stack+0xc6/0xf8
 [<0000000000105740>] dump_stack+0xb0/0xc0
 [<000000000013144a>] __might_sleep+0x14e/0x17c
 [<000000000045e226>] mutex_lock_nested+0x42/0x3b4
 [<00000000002c443e>] echo_char_raw+0x3a/0x9c
 [<00000000002c688c>] n_tty_receive_buf+0x1154/0x1208
 [<00000000002ca0a2>] flush_to_ldisc+0x152/0x220
 [<00000000002ca1da>] tty_flip_buffer_push+0x6a/0x90
 [<00000000002cea74>] hvc_poll+0x244/0x2c8
 [<00000000002ceb68>] khvcd+0x70/0x12c
 [<000000000015bbd0>] kthread+0x68/0xa0
 [<0000000000109d5a>] kernel_thread_starter+0x6/0xc
 [<0000000000109d54>] kernel_thread_starter+0x0/0xc
1 lock held by khvcd/748:
 #0:  (hvc_structs_lock){--..}, at: [<00000000002ceb50>] khvcd+0x58/0x12c

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-01-16 16:15:16 +11:00
..
agp agp/intel: Fix broken ® symbol in device name. 2008-12-29 10:06:20 +10:00
hw_random sparc64: Fix unsigned long long warnings in drivers. 2009-01-06 13:20:38 -08:00
ip2
ipmi
mwave mwave: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
pcmcia synclink_cs: Convert to tty_port 2009-01-02 10:19:42 -08:00
rio rio: Kill off ckmalloc 2009-01-02 10:19:38 -08:00
tpm Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
xilinx_hwicap
.gitignore
amiserial.c m68k: amiserial - Kill warn_unused_result warnings 2009-01-12 20:56:39 +01:00
apm-emulation.c
applicom.c
applicom.h
bfin-otp.c
briq_panel.c
bsr.c powerpc: Cleanup from l64 to ll64 change: drivers/char 2009-01-13 14:48:00 +11:00
cd1865.h
ChangeLog
consolemap.c consolemap: indentation & braces disagree - reindent 2009-01-06 15:59:30 -08:00
cp437.uni
cs5535_gpio.c
cyclades.c drivers/char/cyclades.c: cy_pci_probe: fix error path 2009-01-02 10:19:43 -08:00
defkeymap.c_shipped
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1302.c
ds1620.c
dsp56k.c
dtlk.c
efirtc.c
epca.c trivial: fix an -> a typos in documentation and comments 2009-01-06 11:28:07 +01:00
epca.h
epcaconfig.h
esp.c tty_port: Add a port level carrier detect operation 2009-01-02 10:19:38 -08:00
generic_nvram.c
generic_serial.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
genrtc.c
hangcheck-timer.c
hpet.c
hvc_beat.c powerpc/cell: Use correct types in beat files 2009-01-08 16:25:16 +11:00
hvc_console.c hvc_console: Remove tty->low_latency 2009-01-16 16:15:16 +11:00
hvc_console.h
hvc_irq.c hvc_console: Call free_irq() only if request_irq() was successful 2009-01-13 14:48:01 +11:00
hvc_iseries.c
hvc_iucv.c [S390] hvc_iucv: Special handling of IUCV HVC devices 2009-01-09 12:15:09 +01:00
hvc_rtas.c
hvc_udbg.c
hvc_vio.c
hvc_xen.c
hvcs.c
hvsi.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
i8k.c i8k: Add Dell Vostro systems 2009-01-02 10:28:32 -08:00
isicom.c tty: Introduce some close helpers for ports 2009-01-02 10:19:40 -08:00
istallion.c tty: Introduce some close helpers for ports 2009-01-02 10:19:40 -08:00
Kconfig powerpc: Fix iseries drivers build failure without CONFIG_VIOPATH 2009-01-08 16:25:14 +11:00
keyboard.c
lp.c
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
mbcs.c
mbcs.h
mem.c mm: make vread() and vwrite() declaration 2009-01-06 15:59:05 -08:00
misc.c
mmtimer.c
moxa.c tty_port: Add a port level carrier detect operation 2009-01-02 10:19:38 -08:00
moxa.h
mspec.c
mxser.c tty: Introduce some close helpers for ports 2009-01-02 10:19:40 -08:00
mxser.h
n_hdlc.c
n_r3964.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
n_tty.c tty: N_TTY SIGIO only works for read 2009-01-02 10:19:40 -08:00
nozomi.c tty: kref nozomi 2009-01-02 10:19:40 -08:00
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c
ps3flash.c powerpc/ps3: Printing fixups for l64 to ll64 conversion drivers/char 2009-01-16 16:15:14 +11:00
pty.c pty: Fix documentation 2009-01-12 16:37:00 -08:00
random.c random: don't try to look at entropy_count outside the lock 2009-01-06 15:59:30 -08:00
raw.c
riscom8_reg.h
riscom8.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
riscom8.h
rocket_int.h tty: rocketport uses different port flags to everyone else 2009-01-02 10:19:39 -08:00
rocket.c tty: use port methods for the rocket driver 2009-01-02 10:19:42 -08:00
rocket.h tty: rocketport uses different port flags to everyone else 2009-01-02 10:19:39 -08:00
rtc.c RTC: Remove the BKL. 2009-01-08 16:44:03 -07:00
scc.h
scx200_gpio.c
selection.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
ser_a2232.c m68k: ser_a2232 - Kill warn_unused_result warnings 2009-01-12 20:56:39 +01:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
snsc_event.c
snsc.c
snsc.h
sonypi.c
specialix_io8.h
specialix.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
stallion.c tty: Introduce some close helpers for ports 2009-01-02 10:19:40 -08:00
sx.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
sx.h
sxboards.h
sxwindow.h
synclink_gt.c synclink_gt: enable RI interrupt 2009-01-15 16:39:37 -08:00
synclink.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
synclinkmp.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
sysrq.c sysrq: add commentary on why we use the console loglevel over using KERN_EMERG 2009-01-15 16:39:36 -08:00
tb0219.c
tlclk.c
toshiba.c
tty_audit.c
tty_buffer.c
tty_io.c pty: simplify resize 2009-01-02 10:19:36 -08:00
tty_ioctl.c tty: Fix race in the flush for some ldiscs 2009-01-15 12:48:35 -08:00
tty_ldisc.c tty: Fix PPP hang under load 2009-01-02 10:19:38 -08:00
tty_port.c tty: use port methods for the rocket driver 2009-01-02 10:19:42 -08:00
vc_screen.c
viotape.c
virtio_console.c virtio_console: support console resizing 2008-12-30 09:26:10 +10:30
vme_scc.c m68k: vme_scc - Kill warn_unused_result warnings 2009-01-12 20:56:38 +01:00
vr41xx_giu.c
vt_ioctl.c tty: Remove some pointless casts 2009-01-02 10:19:40 -08:00
vt.c Make various things static 2009-01-08 08:31:15 -08:00