linux_dsm_epyc7002/drivers/tty/serial
Sam Nobs 33f16855dc tty: serial: imx: fix potential deadlock
Enabling the lock dependency validator has revealed
that the way spinlocks are used in the IMX serial
port could result in a deadlock.

Specifically, imx_uart_int() acquires a spinlock
without disabling the interrupts, meaning that another
interrupt could come along and try to acquire the same
spinlock, potentially causing the two to wait for each
other indefinitely.

Use spin_lock_irqsave() instead to disable interrupts
upon acquisition of the spinlock.

Fixes: c974991d26 ("tty:serial:imx: use spin_lock instead of spin_lock_irqsave in isr")
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sam Nobs <samuel.nobs@taitradio.com>
Link: https://lore.kernel.org/r/1604955006-9363-1-git-send-email-samuel.nobs@taitradio.com
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-12 09:32:49 +01:00
..
8250 serial: 8250_mtk: Fix uart_get_baud_rate warning 2020-11-06 17:23:03 +01:00
cpm_uart tty: serial: cpm_uart: Fix behaviour for non existing GPIOs 2020-06-27 13:50:51 +02:00
jsm tty: serial: Replace HTTP links with HTTPS ones 2020-07-21 20:04:54 +02:00
21285.c tty: serial: 21285: fix lockup on open 2020-10-28 13:39:14 +01:00
altera_jtaguart.c serial: altera_jtaguart: Replace HTTP links with HTTPS ones 2020-07-21 20:04:54 +02:00
altera_uart.c
amba-pl010.c
amba-pl011.c serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt 2020-09-30 14:31:04 +02:00
amba-pl011.h
apbuart.c
apbuart.h
ar933x_uart.c serial: Allow uart_get_rs485_mode() to return errno 2020-05-15 14:47:05 +02:00
arc_uart.c
atmel_serial.c Linux 5.9-rc3 2020-08-31 07:19:25 +02:00
atmel_serial.h
bcm63xx_uart.c Revert "tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart" 2020-05-04 11:49:57 +02:00
clps711x.c
digicolor-usart.c
dz.c
dz.h
earlycon-arm-semihost.c
earlycon-riscv-sbi.c
earlycon.c tty: serial: print earlycon info after match->setup 2020-09-16 13:16:20 +02:00
efm32-uart.c
fsl_linflexuart.c
fsl_lpuart.c tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A 2020-10-28 13:40:25 +01:00
icom.c tty: serial: icom: switch from 'pci_' to 'dma_' API 2020-09-04 18:07:20 +02:00
icom.h
ifx6x60.c tty: serial, fix kernel-doc 2020-08-18 13:51:18 +02:00
ifx6x60.h
imx_earlycon.c tty: serial: imx: add imx earlycon driver 2020-07-29 17:11:02 +02:00
imx.c tty: serial: imx: fix potential deadlock 2020-11-12 09:32:49 +01:00
ip22zilog.c
ip22zilog.h
Kconfig tty: serial: imx: enable earlycon by default if IMX_SERIAL_CONSOLE is enabled 2020-11-06 17:23:49 +01:00
kgdb_nmi.c kdb: Switch to use safer dbg_io_ops over console APIs 2020-06-26 15:40:16 +01:00
kgdboc.c Linux 5.8-rc6 2020-07-20 09:39:11 +02:00
lantiq.c serial: lantiq: Make driver modular 2020-05-15 12:22:19 +02:00
lpc32xx_hs.c
Makefile tty: serial: imx: add dependence and build for earlycon 2020-08-18 13:54:34 +02:00
max310x.c serial: max310x: rework RX interrupt handling 2020-10-01 10:57:50 +02:00
max3100.c
mcf.c serial: mcf: add sysrq capability 2020-10-05 13:32:30 +02:00
men_z135_uart.c tty: serial, fix kernel-doc 2020-08-18 13:51:18 +02:00
meson_uart.c
milbeaut_usio.c
mpc52xx_uart.c
mps2-uart.c
msm_serial.c serial: msm_serial: add sparse context annotation 2020-07-24 10:44:27 +02:00
mux.c
mvebu-uart.c serial: mvebu-uart: fix unused variable warning 2020-09-29 12:56:39 +02:00
mxs-auart.c serial: mxs-auart: add missed iounmap() in probe failure and remove 2020-07-10 14:44:46 +02:00
omap-serial.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
owl-uart.c tty: serial: owl: add "much needed" clk_prepare_enable() 2020-04-23 15:46:30 +02:00
pch_uart.c pch_uart: drop double zeroing 2020-09-27 14:17:43 +02:00
pic32_uart.c
pic32_uart.h
pmac_zilog.c serial: pmac_zilog: use for_each_child_of_node() macro 2020-09-16 13:20:09 +02:00
pmac_zilog.h
pnx8xxx_uart.c
pxa.c
qcom_geni_serial.c serial: qcom_geni_serial: To correct QUP Version detection logic 2020-09-30 09:12:03 +02:00
rda-uart.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rp2.c
sa1100.c serial: sa1100: use platform_get_resource() 2020-08-18 15:02:06 +02:00
samsung_tty.c serial: samsung: Removes the IRQ not found warning 2020-08-18 13:53:42 +02:00
sb1250-duart.c MIPS: Replace SIBYTE_1956_WAR by CONFIG_SB1_PASS_2_WORKAROUNDS 2020-09-07 22:24:51 +02:00
sc16is7xx.c sc16is7xx: Set iobase to device index 2020-09-04 17:14:47 +02:00
sccnxp.c
serial_core.c Merge 5.9.0-rc6 into tty-next 2020-09-21 09:23:55 +02:00
serial_mctrl_gpio.c
serial_mctrl_gpio.h
serial_txx9.c serial: txx9: add missing platform_driver_unregister() on error in serial_txx9_init 2020-11-06 17:24:41 +01:00
serial-tegra.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sh-sci.c Revert "serial: sh-sci: Initialize spinlock for uart console" 2020-07-21 18:21:49 +02:00
sh-sci.h
sifive.c Revert "tty: serial: add missing spin_lock_init for SiFive serial console" 2020-07-21 18:21:49 +02:00
sirfsoc_uart.c
sirfsoc_uart.h
sprd_serial.c
st-asc.c
stm32-usart.c serial: stm32: Add RS485 RTS GPIO control again 2020-09-04 17:16:40 +02:00
stm32-usart.h tty: serial: Add modem control gpio support for STM32 UART 2020-05-15 12:24:15 +02:00
suncore.c
sunhv.c Revert "serial: sunhv: Initialize lock for non-registered console" 2020-07-21 18:21:49 +02:00
sunsab.c serial: sunsab: Return proper error code from console ->setup() hook 2020-06-25 14:21:28 +02:00
sunsab.h
sunsu.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sunzilog.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sunzilog.h
tegra-tcu.c
timbuart.c tty: timbuart: convert tasklets to use new tasklet_setup() API 2020-08-18 13:33:13 +02:00
timbuart.h
uartlite.c tty: serial: uartlite: Replace HTTP links with HTTPS ones 2020-07-21 20:04:54 +02:00
ucc_uart.c serial: ucc_uart: make qe_uart_set_mctrl() static 2020-09-16 13:14:58 +02:00
vr41xx_siu.c
vt8500_serial.c
xilinx_uartps.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
zs.c
zs.h