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.c
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 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
21285.c
68328serial.c
68328serial.h
68360serial.c
Kconfig Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-04-13 08:17:52 -07:00
Makefile Add support for the MAX3100 SPI UART. 2009-04-07 08:44:05 -07:00
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
bfin_sport_uart.h
clps711x.c
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
ioc3_serial.c
ioc4_serial.c
ip22zilog.c
ip22zilog.h
kgdboc.c
m32r_sio.c
m32r_sio.h
m32r_sio_reg.h
max3100.c tty: MAX3100 2009-04-08 14:33:38 -07:00
mcf.c
mpc52xx_uart.c
mpsc.c
mux.c
netx-serial.c
nwpserial.c
of_serial.c
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
pxa.c
s3c24a0.c
s3c2400.c
s3c2410.c
s3c2412.c
s3c2440.c
s3c6400.c
sa1100.c
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-sci.h
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
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