WSL2-Linux-Kernel/drivers/tty/serial
Sonic Zhang 0f66e50af5 serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock
The RX lock is used to protect the RX buffer from concurrent access in DMA
mode between the timer and RX interrupt routines.  It is independent from
the uart lock which is used to protect the TX buffer.  It is possible for
a uart TX transfer to be started up from the RX interrupt handler if low
latency is enabled.  So we need to split the locks to avoid deadlocking in
this situation.

In PIO mode, the RX lock is not necessary because the handle_simple_irq
and handle_level_irq functions ensure driver interrupt handlers are called
once on one core.

And now that the RX path has its own lock, the TX interrupt has nothing to
do with the RX path, so disabling it at the same time.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-03 14:44:54 -08:00
..
cpm_uart tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
jsm tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250.c serial: unbreak billionton CF card 2011-01-22 19:15:01 -08:00
8250.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_accent.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_acorn.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_boca.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_early.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_exar_st16c554.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_fourport.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_gsc.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_hp300.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_hub6.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_mca.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_pci.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
8250_pnp.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
21285.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
68328serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
68328serial.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
68360serial.c 68360serial: Plumb in rs_360_get_icount() 2011-02-03 14:44:23 -08:00
Kconfig tty/serial: fix apbuart build 2011-01-22 19:15:02 -08:00
Makefile tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
altera_jtaguart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
altera_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
amba-pl010.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
amba-pl011.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
apbuart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
apbuart.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
atmel_serial.c Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-01-20 16:39:23 -08:00
bcm63xx_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
bfin_5xx.c serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock 2011-02-03 14:44:54 -08:00
bfin_sport_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
bfin_sport_uart.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
clps711x.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
crisv10.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
crisv10.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
dz.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
dz.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
icom.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
icom.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ifx6x60.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ifx6x60.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
imx.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ioc3_serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ioc4_serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ip22zilog.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ip22zilog.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
kgdboc.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
m32r_sio.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
m32r_sio.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
m32r_sio_reg.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
max3100.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
max3107-aava.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
max3107.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
max3107.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mcf.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mfd.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mpc52xx_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mpsc.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mrst_max3110.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mrst_max3110.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
msm_serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
msm_serial.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
mux.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
netx-serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
nwpserial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
of_serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
omap-serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
pch_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
pmac_zilog.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
pmac_zilog.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
pnx8xxx_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
pxa.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c24a0.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c2400.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c2410.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c2412.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c2440.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s3c6400.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
s5pv210.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sa1100.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
samsung.c Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-01-20 16:39:23 -08:00
samsung.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sb1250-duart.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
sc26xx.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
serial_core.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
serial_cs.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
serial_ks8695.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
serial_lh7a40x.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
serial_txx9.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sh-sci.c Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-01-20 16:39:23 -08:00
sh-sci.h Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-01-20 16:39:23 -08:00
sn_console.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
suncore.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
suncore.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunhv.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunsab.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunsab.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunsu.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunzilog.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
sunzilog.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
timbuart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
timbuart.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
uartlite.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
ucc_uart.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
vr41xx_siu.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
vt8500_serial.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
zs.c tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00
zs.h tty: move drivers/serial/ to drivers/tty/serial/ 2011-01-13 12:10:18 -08:00