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
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
ipmi
Fix platform drivers that crash on suspend/resume
2008-11-12 17:17:16 -08:00
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
xilinx_hwicap: remove improper wording in license statement
2008-12-17 11:23:07 -08:00
.gitignore
amiserial.c
m68k: amiserial - Kill warn_unused_result warnings
2009-01-12 20:56:39 +01:00
apm-emulation.c
applicom.c
applicom.c: fix apparently-broken code in do_ac_read()
2008-10-16 11:21:47 -07:00
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
unicode table for cp437
2008-12-13 11:25:49 -08:00
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
rtc: use bcd2bin/bin2bcd
2008-10-20 08:52:41 -07:00
ds1620.c
[ARM] netwinder: clean up GPIO naming
2008-12-13 09:12:07 +00:00
dsp56k.c
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
dtlk.c
efirtc.c
drivers/char/efirtc.c: removed duplicated #include
2008-08-04 16:59:56 -07:00
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
x86: correct link to HPET timer specification
2008-11-24 10:05:12 +01:00
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
powerpc: Make open count variables signed in hvcs/hvsi/hvc_console
2008-12-03 21:04:13 +11:00
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
drivers/hvc: Add missing of_node_put
2008-12-03 21:04:09 +11:00
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
powerpc: udbg-based backend for hvc_console
2008-11-19 16:04:25 +11:00
hvc_vio.c
drivers/hvc: Add missing of_node_put
2008-12-03 21:04:09 +11:00
hvc_xen.c
hvc_console: Add a hangup notifier for backends
2008-10-22 10:59:54 +11:00
hvcs.c
powerpc: Make open count variables signed in hvcs/hvsi/hvc_console
2008-12-03 21:04:13 +11:00
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
Input: keyboard - fix potential out of bound access to key_map
2008-10-08 23:45:36 -04:00
lp.c
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
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
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
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
mspec: convert nopfn to fault
2008-07-24 10:47:14 -07:00
mxser.c
tty: Introduce some close helpers for ports
2009-01-02 10:19:40 -08:00
mxser.h
n_hdlc.c
tty: some ICANON magic is in the wrong places
2008-10-13 09:51:44 -07:00
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
[PATCH] nvram - convert PRINT_PROC to seq_file
2008-11-11 09:56:00 +00:00
nwbutton.c
nwbutton.h
nwflash.c
[ARM] netwinder: clean up GPIO naming
2008-12-13 09:12:07 +00:00
pc8736x_gpio.c
pc8736x_gpio: add support for PC87365 chips
2008-10-20 08:52:40 -07:00
ppdev.c
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
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
[PATCH] kill the rest of struct file propagation in block ioctls
2008-10-21 07:49:14 -04:00
riscom8.c
tty: Remove some pointless casts
2009-01-02 10:19:40 -08:00
riscom8.h
riscom8_reg.h
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
rocket_int.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.c
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
snsc.h
snsc_event.c
sonypi.c
Merge branch 'misc' into release
2008-11-11 21:14:11 -05:00
specialix.c
tty: Remove some pointless casts
2009-01-02 10:19:40 -08:00
specialix_io8.h
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.c
tty: Remove some pointless casts
2009-01-02 10:19:40 -08:00
synclink_gt.c
synclink_gt: enable RI interrupt
2009-01-15 16:39:37 -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
Audit: Log TIOCSTI
2008-12-09 20:32:06 +11:00
tty_buffer.c
tty: split the buffering from tty_io
2008-10-13 09:51:40 -07:00
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
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
viotape.c
device create: char: convert device_create_drvdata to device_create
2008-10-16 09:24:42 -07:00
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
drivers/char: use nr_irqs
2008-10-16 16:52:05 +02:00
vt.c
Make various things static
2009-01-08 08:31:15 -08:00
vt_ioctl.c
tty: Remove some pointless casts
2009-01-02 10:19:40 -08:00