linux-stable/drivers/tty/serial/8250
Johan Hovold 853a9ae29e serial: 8250: fix handle_irq locking
The 8250 handle_irq callback is not just called from the interrupt
handler but also from a timer callback when polling (e.g. for ports
without an interrupt line). Consequently the callback must explicitly
disable interrupts to avoid a potential deadlock with another interrupt
in polled mode.

Add back an irqrestore-version of the sysrq port-unlock helper and use
it in the 8250 callbacks that need it.

Fixes: 75f4e830fa ("serial: do not restore interrupt state in sysrq helper")
Cc: stable@vger.kernel.org	# 5.13
Cc: Joel Stanley <joel@jms.id.au>
Cc: Andrew Jeffery <andrew@aj.id.au>
Reported-by: kernel test robot <oliver.sang@intel.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20210714080427.28164-1-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-07-21 12:53:26 +02:00
..
8250.h serial: 8250: Use BIT(x) for UART_{CAP,BUG}_* 2021-05-20 17:14:50 +02:00
8250_accent.c
8250_acorn.c
8250_aspeed_vuart.c serial: 8250: fix handle_irq locking 2021-07-21 12:53:26 +02:00
8250_bcm2835aux.c serial: 8250: Simplify with dev_err_probe() 2020-09-04 17:14:29 +02:00
8250_bcm7271.c serial: 8250: Make symbol 'brcmuart_debugfs_root' static 2021-04-02 16:12:27 +02:00
8250_boca.c
8250_core.c tty/serial: make port of serial8250_register_8250_port const 2021-05-20 16:59:14 +02:00
8250_dma.c
8250_dw.c serial: 8250_dw: Add device HID for new AMD UART controller 2021-05-13 17:08:42 +02:00
8250_dwlib.c
8250_dwlib.h
8250_early.c tty: serial: 8250: 8250_port: Move prototypes to shared location 2020-11-13 15:28:12 +01:00
8250_em.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
8250_exar.c Linux 5.13-rc6 2021-06-14 09:14:43 +02:00
8250_exar_st16c554.c
8250_fintek.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
8250_fourport.c
8250_fsl.c serial: 8250: fix handle_irq locking 2021-07-21 12:53:26 +02:00
8250_gsc.c
8250_hp300.c
8250_hub6.c
8250_ingenic.c serial: 8250: Simplify with dev_err_probe() 2020-09-04 17:14:29 +02:00
8250_ioc3.c
8250_lpc18xx.c
8250_lpss.c
8250_men_mcb.c
8250_mid.c
8250_mtk.c serial: 8250-mtk: Fix reference leak in mtk8250_probe 2020-11-26 21:19:58 +01:00
8250_of.c serial: 8250: of: Check for CONFIG_SERIAL_8250_BCM7271 2021-05-13 16:22:48 +02:00
8250_omap.c serial: 8250: 8250_omap: Fix possible interrupt storm on K3 SoCs 2021-06-24 14:51:33 +02:00
8250_pci.c serial: 8250: Correct the clock for OxSemi PCIe devices 2021-06-16 09:20:29 +02:00
8250_pnp.c
8250_port.c serial: 8250: fix handle_irq locking 2021-07-21 12:53:26 +02:00
8250_pxa.c
8250_tegra.c 8250_tegra: clean up tegra_uart_handle_break 2021-01-07 16:17:31 +01:00
8250_uniphier.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
Kconfig serial: extend compile-test coverage 2021-04-22 13:12:13 +02:00
Makefile serial: 8250: Add new 8250-core based Broadcom STB driver 2021-03-26 15:18:30 +01:00
serial_cs.c serial_cs: Add Option International GSM-Ready 56K/ISDN modem 2021-06-16 09:20:29 +02:00