kernel-fxtec-pro1x/drivers/tty
Thomas Abraham c15c3747ee serial: samsung: fix potential soft lockup during uart write
Certain tty line discipline implementations such slip and bluetooth hci invoke
the serial core uart_write() api in their write_wakeup callback. This leads to
a soft lockup with samsung serial driver since the uart port lock is taken in
the driver's interrupt handler and uart_write() attempts to take the same lock
again.

Fix this issue by releasing the uart port lock before the call to
uart_write_wakeup() in the tx handler. Also move the spin-lock/unlock sequence
from s3c64xx_serial_handle_irq() function into the tx and rx irq handlers so
that this change is applicable to s3c24xx platforms as well.

Reported-by: Kyungmin Park <kyungmin.park@samsung.com>
Reported-by: Hyeonkook Kim <hk619.kim@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-26 15:36:39 -08:00
..
hvc tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
ipwireless TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
serial serial: samsung: fix potential soft lockup during uart write 2012-11-26 15:36:39 -08:00
vt tty: vt: Remove redundant null check before kfree. 2012-11-26 15:36:38 -08:00
amiserial.c TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
bfin_jtag_comm.c TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
cyclades.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
ehv_bytechan.c tty: remove use of __devinit 2012-11-21 15:22:52 -08:00
isicom.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
Kconfig tty/serial: put (EXPERIMENTAL) marking back on N_GSM and SERIAL_IFX6X60 2012-09-18 17:17:56 +01:00
Makefile
moxa.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
moxa.h
mxser.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
mxser.h
n_gsm.c TTY: n_gsm, use kref from tty_port 2012-11-15 17:20:57 -08:00
n_hdlc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
n_r3964.c tty: localise the lock 2012-08-10 12:55:47 -07:00
n_tracerouter.c
n_tracesink.c
n_tracesink.h
n_tty.c tty: add missing newlines to WARN_RATELIMIT 2012-10-25 11:30:27 -07:00
nozomi.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
pty.c pty: Mark pty_resize static 2012-11-21 15:43:26 -08:00
rocket.c tty: remove use of __devinitdata 2012-11-21 15:25:06 -08:00
rocket.h
rocket_int.h
synclink.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
synclink_gt.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
synclinkmp.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
sysrq.c mm, oom: ensure sysrq+f always passes valid zonelist 2012-11-15 17:13:48 -08:00
tty_audit.c TTY: audit, stop accessing tty->icount 2012-10-22 16:50:54 -07:00
tty_buffer.c tty: add missing newlines to WARN_RATELIMIT 2012-10-25 11:30:27 -07:00
tty_io.c tty: Mark tty_del_file and __tty_hangup static 2012-11-21 15:19:52 -08:00
tty_ioctl.c tty: pty - Move TIOCPKT handling into pty.c 2012-10-25 12:07:18 -07:00
tty_ldisc.c tty: Use raw spin lock to protect TTY ldisc administration 2012-10-24 11:37:02 -07:00
tty_mutex.c tty: tty_mutex.c: Fixed coding style warning (using printk) 2012-10-24 11:34:51 -07:00
tty_port.c TTY: introduce tty_port_destroy 2012-11-15 17:20:58 -08:00