1
linux/drivers/serial
Mark Brown 41609ff430 [ARM] 5449/1: S3C: Use disable_irq_nosync() to fix boot lockups
With 2.6.30-rc1 on SMDK6410 I experience a soft lockup on bootup when
the Samsung serial driver attempts to disable the transmit interrupt
from within the transmit interrupt handler: it calls disable_irq()
which locks up due to attempting to synchronise with the running handler.
Fix this by using disable_irq_nosync().

Also make the same change in the recieve path.

Backtrace:

[<c002a914>] (__irq_svc+0x34/0x80) from [<c00696c0>] (synchr)
[<c00696c0>] (synchronize_irq+0xc/0xcc) from [<c018d434>] (s)
[<c018d434>] (s3c24xx_serial_stop_tx+0x1c/0x3c) from [<c018d)
[<c018d54c>] (s3c24xx_serial_tx_chars+0xf8/0x104) from [<c00)
[<c0068bcc>] (handle_IRQ_event+0x74/0x118) from [<c006ab04>])
[<c006ab04>] (handle_level_irq+0x100/0x118) from [<c00349c4>)
[<c00349c4>] (s3c_irq_demux_uart+0x94/0xc4) from [<c002a050>)
[<c002a050>] (_text+0x50/0x6c) from [<c002a914>] (__irq_svc+)

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-04-15 10:01:02 +01:00
..
cpm_uart cpm_uart: Disable CPM udbg when re-initing CPM uart, even if not the console. 2009-04-06 09:09:33 -05:00
jsm tty: jsm cleanups 2009-04-07 08:44:06 -07:00
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 8250: Fix warning 2009-04-06 14:36:43 -07:00
8250_pnp.c serial: Update PNP IDs 2009-04-06 14:36:26 -07:00
8250.c 8250: fix boot hang with serial console when using with Serial Over Lan port 2009-02-20 17:57:50 -08:00
8250.h
21285.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
68328serial.c
68328serial.h
68360serial.c
amba-pl010.c
amba-pl011.c
atmel_serial.c avr32: add hardware handshake support to atmel_serial 2009-04-01 16:13:51 +02:00
bfin_5xx.c tty: Blackin CTS/RTS 2009-04-07 08:44:05 -07:00
bfin_sport_uart.c __FUNCTION__ is gcc-specific, use __func__ 2009-01-02 10:19:42 -08:00
bfin_sport_uart.h
clps711x.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
crisv10.c tty: Use the generic RS485 ioctl on CRIS 2009-04-07 08:44:05 -07:00
crisv10.h tty: Use the generic RS485 ioctl on CRIS 2009-04-07 08:44:05 -07:00
dz.c
dz.h
icom.c icom: remove unused variables 2009-04-06 14:36:37 -07:00
icom.h
imx.c [ARM] MXC: remove _clk suffix from clock names 2009-03-13 10:33:48 +01:00
ioc3_serial.c
ioc4_serial.c
ip22zilog.c
ip22zilog.h
Kconfig Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-04-13 08:17:52 -07:00
kgdboc.c
m32r_sio_reg.h
m32r_sio.c
m32r_sio.h
Makefile Add support for the MAX3100 SPI UART. 2009-04-07 08:44:05 -07:00
max3100.c tty: MAX3100 2009-04-08 14:33:38 -07:00
mcf.c m68knommu: Fix support for console port other than ttyS0 on mcf.c 2009-03-24 15:17:43 +10:00
mpc52xx_uart.c powerpc/5200: Don't specify IRQF_SHARED in PSC UART driver 2009-02-04 11:23:56 -07:00
mpsc.c
mux.c
netx-serial.c
nwpserial.c serial: Add driver for the Cell Network Processor serial port NWP device 2009-01-08 16:25:18 +11:00
of_serial.c serial: Add 16850 uart type support to OF uart driver 2009-01-16 16:15:17 +11:00
pmac_zilog.c powerpc/pmac: Fix internal modem IRQ on Wallstreet PowerBook 2009-04-07 15:07:43 +10:00
pmac_zilog.h
pnx8xxx_uart.c When a break signal is detected, the next character should be ignored. 2009-01-15 12:48:36 -08:00
pxa.c [ARM] pxa: remove machine class specific stuffs from serial driver 2009-03-09 21:22:38 +08:00
s3c24a0.c
s3c2400.c
s3c2410.c
s3c2412.c
s3c2440.c
s3c6400.c
sa1100.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
samsung.c [ARM] 5449/1: S3C: Use disable_irq_nosync() to fix boot lockups 2009-04-15 10:01:02 +01:00
samsung.h
sb1250-duart.c
sc26xx.c
serial_core.c serial: fixup /proc/tty/driver/serial after proc_fops conversion 2009-04-01 14:50:48 -07:00
serial_cs.c
serial_ks8695.c
serial_lh7a40x.c
serial_txx9.c
sh-sci.c sh: Add support for SH7786 CPU subtype. 2009-03-03 15:40:25 +09:00
sh-sci.h sh: Add support for SH7786 CPU subtype. 2009-03-03 15:40:25 +09:00
sn_console.c
suncore.c
suncore.h
sunhv.c
sunsab.c
sunsab.h
sunsu.c serial: sunsu: sunsu_kbd_ms_init needs to be __devinit 2009-04-08 03:29:03 -07:00
sunzilog.c serial: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
sunzilog.h
uartlite.c
ucc_uart.c ucc: Fix leaky error path 2009-04-06 14:36:32 -07:00
vr41xx_siu.c
zs.c
zs.h