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: switch 8250 drivers to use _nocache ioremaps 2008-05-01 08:04:00 -07:00
8250_exar_st16c554.c
8250_fourport.c
8250_gsc.c make probe_serial_gsc() static 2008-10-20 08:52:36 -07:00
8250_hp300.c 8250_hp300: coding style 2008-02-08 09:22:25 -08:00
8250_hub6.c 8250_hub6: codding style 2008-02-08 09:22:25 -08:00
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 8250: improve workaround for UARTs that don't re-assert THRE correctly 2008-09-02 19:21:38 -07:00
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 serial, 8250: remove NR_IRQ usage 2008-10-16 16:52:02 +02:00
68328serial.h
68360serial.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
amba-pl010.c [ARM] amba drivers: don't pass a consumer clock name for devices with unique clocks 2008-11-30 17:38:14 +00:00
amba-pl011.c [ARM] amba drivers: don't pass a consumer clock name for devices with unique clocks 2008-11-30 17:38:14 +00:00
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 Blackfin serial driver: this driver enable SPORTs on Blackfin emulate UART 2008-04-30 08:29:30 -07:00
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 serial: DZ11: avoid a hang at console switch-over 2008-07-24 10:47:29 -07:00
dz.h dz: clean up and improve the setup of termios settings 2008-02-07 08:42:24 -08:00
icom.c icom: remove unused variables 2009-04-06 14:36:37 -07:00
icom.h Coding style fix drivers/serial/icom.h 2008-02-03 14:47:38 +02:00
imx.c [ARM] MXC: remove _clk suffix from clock names 2009-03-13 10:33:48 +01:00
ioc3_serial.c [IA64] Fix section mismatch ioc3uart_init()/ioc3uart_submodule 2008-12-09 10:08:51 -08:00
ioc4_serial.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
ip22zilog.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
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 tty: The big operations rework 2008-04-30 08:29:47 -07:00
m32r_sio_reg.h
m32r_sio.c drivers/serial: use nr_irqs 2008-10-16 16:52:06 +02:00
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 kgdb: kgdboc console poll hooks for mpsc uart 2008-07-23 11:30:16 -05:00
mux.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
netx-serial.c [ARM] build fixes for netX serial driver 2008-10-30 09:41:59 +01:00
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 [ARM] S3C24A0: Serial port definitions and driver support. 2008-12-15 21:46:36 +00:00
s3c2400.c [ARM] S3C24XX: Move files out of include/asm-arm/plat-s3c* 2008-10-07 22:26:09 +01:00
s3c2410.c [ARM] S3C24XX: Move files out of include/asm-arm/plat-s3c* 2008-10-07 22:26:09 +01:00
s3c2412.c [ARM] S3C24XX: Move files out of include/asm-arm/plat-s3c* 2008-10-07 22:26:09 +01:00
s3c2440.c drivers/serial/s3c2440.c: fix typo in MODULE_LICENSE 2008-12-10 08:01:53 -08:00
s3c6400.c [ARM] S3C6400: serial support for S3C6400 and S3C6410 SoCs 2008-12-15 21:58:11 +00:00
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 [ARM] S3C: Update serial driver IRQ handling 2008-12-15 23:02:39 +00:00
sb1250-duart.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
sc26xx.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
serial_core.c serial: fixup /proc/tty/driver/serial after proc_fops conversion 2009-04-01 14:50:48 -07:00
serial_cs.c pcmcia: remove unused argument to pcmcia_parse_tuple() 2008-08-31 15:50:33 +02:00
serial_ks8695.c [ARM] 5250/1: unbalanced enable_irq() for serial_ks8695.c fix 2008-10-01 22:41:43 +01:00
serial_lh7a40x.c [ARM] lh7a40x: avoid polluting the kernel's namespace 2008-11-28 16:39:04 +00:00
serial_txx9.c serial_txx9: use %lx for iobase 2008-10-20 08:50:24 -07:00
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 Altix serial: fix 2008-10-20 08:52:36 -07:00
suncore.c
suncore.h
sunhv.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
sunsab.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
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 powerpc/virtex: fix various format/casting printk mismatches 2008-11-14 09:59:48 -07:00
ucc_uart.c ucc: Fix leaky error path 2009-04-06 14:36:32 -07:00
vr41xx_siu.c Fix compile errors in SGI console drivers (linux-next tree) 2008-07-20 17:12:36 -07:00
zs.c serial: Z85C30: avoid a hang at console switch-over 2008-07-24 10:47:29 -07:00
zs.h