linux/drivers/serial
Stuart Menefy fd78a76aef sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING.
This cleans up the irqflags tracing code quite a bit and ties it
in to various missing callsites that caused an imbalance when
CONFIG_PROVE_LOCKING was enabled.

Previously this was catching on:

 987 #ifdef CONFIG_PROVE_LOCKING
 988     DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
 989     DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
 990 #endif
 991     retval = -EAGAIN;

with hardirqs being doubly enabled, and subsequently bailing out
with the following call trace:

	Call trace:
	[<88035224>] __lock_acquire+0x616/0x6a6
	[<88015a8c>] do_fork+0xf8/0x2b0
	[<880331ec>] trace_hardirqs_on_caller+0xd4/0x114
	[<88241074>] _spin_unlock_irq+0x20/0x64
	[<88035224>] __lock_acquire+0x616/0x6a6
	[<8800386c>] kernel_thread+0x48/0x70
	[<88024ecc>] ____call_usermodehelper+0x0/0x110
	[<88024ecc>] ____call_usermodehelper+0x0/0x110
	[<88003894>] kernel_thread_helper+0x0/0x14
	[<88024bac>] __call_usermodehelper+0x38/0x70
	[<88025dc0>] worker_thread+0x150/0x274
	[<88035b9c>] lock_release+0x0/0x198
	[<88024b74>] __call_usermodehelper+0x0/0x70
	[<88028cf0>] autoremove_wake_function+0x0/0x30
	[<88028bf2>] kthread+0x3e/0x70
	[<88025c70>] worker_thread+0x0/0x274
	[<8800389c>] kernel_thread_helper+0x8/0x14
	[<88028bb4>] kthread+0x0/0x70
	[<88003894>] kernel_thread_helper+0x0/0x14

Reported-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2009-07-29 23:01:24 +09:00
..
cpm_uart
jsm jsm: clean up "serial: jsm: correctly support 4 8 port boards" 2009-06-24 09:55:50 -07:00
8250.c serial: add support for the TI AR7 internal UART 2009-06-11 08:51:03 -07:00
8250.h
8250_accent.c
8250_acorn.c
8250_boca.c
8250_early.c
8250_exar_st16c554.c
8250_fourport.c
8250_gsc.c
8250_hp300.c
8250_hub6.c
8250_mca.c
8250_pci.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
8250_pnp.c
21285.c
68328serial.c
68328serial.h
68360serial.c
Kconfig msm_serial: serial driver for MSM7K onboard serial peripheral. 2009-06-22 11:32:25 -07:00
Makefile msm_serial: serial driver for MSM7K onboard serial peripheral. 2009-06-22 11:32:25 -07:00
amba-pl010.c [ARM] 5544/1: Trust PrimeCell resource sizes 2009-06-11 15:36:56 +01:00
amba-pl011.c [ARM] 5544/1: Trust PrimeCell resource sizes 2009-06-11 15:36:56 +01:00
atmel_serial.c atmel_serial: fix hang in set_termios when crtscts is enabled 2009-06-16 12:01:16 -07:00
bfin_5xx.c serial: bfin_5xx: fix building as module when early printk is enabled 2009-06-22 11:32:23 -07:00
bfin_sport_uart.c drivers/serial/bfin_sport_uart.c: remove wrong and unneeded memset 2009-07-16 09:19:16 -07:00
bfin_sport_uart.h
clps711x.c
crisv10.c
crisv10.h
dz.c
dz.h
icom.c pci: use pci_ioremap_bar() in drivers/serial 2009-06-24 09:55:50 -07:00
icom.h
imx.c imx: Check for NULL pointer deref before calling tty_encode_baud_rate 2009-06-16 12:01:17 -07:00
ioc3_serial.c
ioc4_serial.c
ip22zilog.c
ip22zilog.h
kgdboc.c
m32r_sio.c
m32r_sio.h
m32r_sio_reg.h
max3100.c
mcf.c
mpc52xx_uart.c powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function 2009-06-17 00:30:22 -06:00
mpsc.c
msm_serial.c serial: don't add msm_serial's probe function to the driver struct 2009-07-16 09:19:16 -07:00
msm_serial.h msm_serial: serial driver for MSM7K onboard serial peripheral. 2009-06-22 11:32:25 -07:00
mux.c
netx-serial.c
nwpserial.c
of_serial.c Merge commit 'origin/master' into next 2009-06-18 11:16:55 +10:00
pmac_zilog.c
pmac_zilog.h
pnx8xxx_uart.c
pxa.c
s3c24a0.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
s3c2400.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
s3c2410.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
s3c2412.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
s3c2440.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
s3c6400.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
sa1100.c
samsung.c serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
samsung.h serial: samsung.c: mark s3c24xx_serial_remove as __devexit 2009-06-22 11:32:24 -07:00
sb1250-duart.c serial: fix off by one errors 2009-06-22 11:32:23 -07:00
sc26xx.c
serial_core.c
serial_cs.c
serial_ks8695.c
serial_lh7a40x.c
serial_txx9.c kgdb: kgdboc console poll hooks for serial_txx9 uart 2009-06-24 09:55:50 -07:00
sh-sci.c sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING. 2009-07-29 23:01:24 +09:00
sh-sci.h
sn_console.c
suncore.c
suncore.h
sunhv.c serial: fix off by one errors 2009-06-22 11:32:23 -07:00
sunsab.c
sunsab.h
sunsu.c
sunzilog.c
sunzilog.h
timbuart.c timbuart: Fix for tx_empty 2009-06-22 11:32:25 -07:00
timbuart.h serial: Added Timberdale UART driver 2009-06-11 08:51:06 -07:00
uartlite.c
ucc_uart.c serial: Make ucc_uart work in HW UART mode 2009-06-15 21:45:31 -05:00
vr41xx_siu.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
zs.c serial: fix off by one errors 2009-06-22 11:32:23 -07:00
zs.h