linux-stable/drivers/tty/serial
Claudiu Beznea 3791ea69a4 serial: sh-sci: Clean sci_ports[0] after at earlycon exit
The early_console_setup() function initializes the sci_ports[0].port with
an object of type struct uart_port obtained from the object of type
struct earlycon_device received as argument by the early_console_setup().

It may happen that later, when the rest of the serial ports are probed,
the serial port that was used as earlycon (e.g., port A) to be mapped to a
different position in sci_ports[] and the slot 0 to be used by a different
serial port (e.g., port B), as follows:

sci_ports[0] = port A
sci_ports[X] = port B

In this case, the new port mapped at index zero will have associated data
that was used for earlycon.

In case this happens, after Linux boot, any access to the serial port that
maps on sci_ports[0] (port A) will block the serial port that was used as
earlycon (port B).

To fix this, add early_console_exit() that clean the sci_ports[0] at
earlycon exit time.

Fixes: 0b0cced19a ("serial: sh-sci: Add CONFIG_SERIAL_EARLYCON support")
Cc: stable@vger.kernel.org
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://lore.kernel.org/r/20241106120118.1719888-4-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-07 09:47:28 +01:00
..
8250 serial: 8250: omap: Move pm_runtime_get_sync 2024-11-05 14:03:53 +01:00
jsm tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
21285.c serial: 21285: Use port lock wrappers 2023-09-18 11:18:08 +02:00
altera_jtaguart.c altera_jtaguart: Use dev_err() to report error attaching IRQ 2024-11-04 02:01:48 +01:00
altera_uart.c altera_uart: Use dev_err() to report error attaching IRQ handler 2024-11-04 02:01:44 +01:00
amba-pl010.c serial: amba-pl010: Use port lock wrappers 2023-09-18 11:18:09 +02:00
amba-pl011.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
apbuart.c serial: apbuart: fix console prompt on qemu 2024-01-04 16:21:06 +01:00
apbuart.h
ar933x_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
arc_uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
atmel_serial.c tty: atmel_serial: Fix typo retreives to retrieves 2024-11-07 09:45:25 +01:00
atmel_serial.h tty: serial: atmel: Use FIELD_PREP/FIELD_GET 2022-09-22 16:32:25 +02:00
bcm63xx_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
clps711x.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
cpm_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
cpm_uart.h serial: cpm_uart: Remove cpm_uart/ subdirectory 2023-08-04 15:08:30 +02:00
digicolor-usart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
dz.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
dz.h
earlycon-riscv-sbi.c tty/serial: Add RISC-V SBI debug console based earlycon 2024-01-10 07:04:04 -08:00
earlycon-semihost.c serial: Rename earlycon semihost driver 2023-01-19 14:58:19 +01:00
earlycon.c earlycon: Let users set the clock frequency 2023-01-19 14:56:44 +01:00
esp32_acm.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
esp32_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
fsl_linflexuart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
fsl_lpuart.c tty: serial: fsl_lpuart: add 7-bits format support on imx7ulp/imx8ulp/imx8qxp 2024-10-11 08:14:58 +02:00
icom.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
imx_earlycon.c serial: make uart_console_write->putchar()'s character an unsigned char 2022-03-03 15:06:31 +01:00
imx.c Merge 6.12-rc4 into tty-next 2024-10-21 08:51:39 +02:00
ip22zilog.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
ip22zilog.h
Kconfig serial: sc16is7xx: re-add Kconfig SPI or I2C dependency 2024-06-04 14:10:28 +02:00
kgdb_nmi.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
kgdboc.c serial: kgdboc: Fix NMI-safety problems from keyboard reset code 2024-04-26 17:14:10 +01:00
lantiq.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
liteuart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
lpc32xx_hs.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
ma35d1_serial.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
Makefile serial: sc16is7xx: rename Kconfig CONFIG_SERIAL_SC16IS7XX_CORE 2024-06-04 14:10:28 +02:00
max310x.c tty: serial: max310x: convert to use maple tree register cache 2024-04-09 16:50:36 +02:00
max3100.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
mcf.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
men_z135_uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
meson_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
milbeaut_usio.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
mpc52xx_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
mps2-uart.c serial: mps2-uart: Use port lock wrappers 2023-09-18 11:18:12 +02:00
msm_serial.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
mux.c tty: serial: use uart_port_tx_limited() 2022-11-03 03:32:40 +01:00
mvebu-uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
mxs-auart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
omap-serial.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
owl-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pch_uart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
pic32_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pmac_zilog.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
pmac_zilog.h serial: pmac_zilog: remove unused uart_pmac_port::termios_cache 2022-05-19 18:23:19 +02:00
pxa.c serial: pxa: Use uart_prepare_sysrq_char(). 2024-03-02 22:06:21 +01:00
qcom_geni_serial.c Merge 6.12-rc4 into tty-next 2024-10-21 08:51:39 +02:00
rda-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
rp2.c tty: rp2: Fix reset with non forgiving PCIe host bridges 2024-09-11 15:46:55 +02:00
sa1100.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
samsung_tty.c tty: serial: samsung: Add Exynos8895 compatible 2024-11-04 02:02:45 +01:00
sb1250-duart.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
sc16is7xx_i2c.c serial: sc16is7xx: split into core and I2C/SPI parts (sc16is7xx_regcfg) 2024-04-11 14:08:08 +02:00
sc16is7xx_spi.c serial: sc16is7xx: split into core and I2C/SPI parts (sc16is7xx_regcfg) 2024-04-11 14:08:08 +02:00
sc16is7xx.c serial: sc16is7xx: announce support for SER_RS485_RTS_ON_SEND 2024-10-11 08:14:54 +02:00
sc16is7xx.h serial: sc16is7xx: split into core and I2C/SPI parts (sc16is7xx_regcfg) 2024-04-11 14:08:08 +02:00
sccnxp.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
serial_base_bus.c Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
serial_base.h serial: core: Add serial_base_match_and_update_preferred_console() 2024-07-04 15:41:44 +02:00
serial_core.c TTY/Serial driver update for 6.12-rc1 2024-09-26 09:59:50 -07:00
serial_ctrl.c serial: core: Start managing serial controllers to enable runtime PM 2023-05-31 10:46:59 +01:00
serial_mctrl_gpio.c tty: add missing MODULE_DESCRIPTION() macros 2024-06-24 16:10:11 +02:00
serial_mctrl_gpio.h serial: mctrl_gpio: add a new API to enable / disable wake_irq 2022-02-08 11:07:16 +01:00
serial_port.c serial: port: Don't block system suspend even if bytes are left to xmit 2024-06-04 14:09:47 +02:00
serial_txx9.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
serial-tegra.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sh-sci.c serial: sh-sci: Clean sci_ports[0] after at earlycon exit 2024-11-07 09:47:28 +01:00
sh-sci.h tty: serial: sh-sci: Add support for tx end interrupt handling 2023-04-20 13:47:33 +02:00
sifive.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sprd_serial.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
st-asc.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
stm32-usart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
stm32-usart.h serial: stm32: get FIFO size from hwcfg register 2024-01-27 19:04:11 -08:00
suncore.c
sunhv.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunplus-uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunsab.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunsab.h
sunsu.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunzilog.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
sunzilog.h
tegra-tcu.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
timbuart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
timbuart.h
uartlite.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
ucc_uart.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
vt8500_serial.c serial: vt8500: Use port lock wrappers 2023-09-18 11:18:16 +02:00
xilinx_uartps.c serial: Switch back to struct platform_driver::remove() 2024-10-11 08:13:28 +02:00
zs.c tty: serial: switch from circ_buf to kfifo 2024-04-09 15:28:03 +02:00
zs.h