linux/drivers/tty/serial
Fan Wu 4409154992 serial: amba-pl011: synchronize DMA teardown
dmaengine_terminate_all() does not wait for a running callback, so the TX
callback can still touch the TX buffer after it is freed. The RX poll
timer reads the RX buffers without the port lock.

Switch to dmaengine_terminate_sync() and delete the RX timer before
freeing the buffers.

Fixes: ead76f329f ("ARM: 6763/1: pl011: add optional RX DMA to PL011 v2")
Cc: stable <stable@kernel.org>
Assisted-by: Codex:gpt-5.6
Signed-off-by: Fan Wu <fanwu01@zju.edu.cn>
Link: https://patch.msgid.link/20260731085915.326775-4-fanwu01@zju.edu.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-08-03 16:31:22 +02:00
..
8250 serial: 8250_of: clear stuck empty-FIFO RX-timeout on LPC32xx 2026-08-03 16:31:07 +02:00
jsm serial: jsm: Drop unused driver_data assigment and redundant zeros 2026-05-11 16:56:03 +02:00
21285.c
altera_jtaguart.c serial: altera_jtaguart: handle uart_add_one_port() failures 2026-05-22 11:48:23 +02:00
altera_uart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
amba-pl010.c
amba-pl011.c serial: amba-pl011: synchronize DMA teardown 2026-08-03 16:31:22 +02:00
apbuart.c serial: apbuart: remove check for zero baud rate from uart_get_baud_rate() 2026-05-11 17:19:52 +02:00
apbuart.h
ar933x_uart.c serial: ar933x: Add polling support 2025-10-22 12:04:43 +02:00
arc_uart.c
atmel_serial.c tty: atmel_serial: update outdated reference to atmel_tasklet_func() 2026-03-30 17:36:45 +02:00
atmel_serial.h
bcm63xx_uart.c serial: Replace driver usage of UPF_CONS_FLOW 2026-05-11 16:58:38 +02:00
clps711x.c
cpm_uart.c
cpm_uart.h
digicolor-usart.c
dz.c serial: dz: Convert to use a platform device 2026-05-22 11:52:34 +02:00
dz.h
earlycon-riscv-sbi.c
earlycon-semihost.c
earlycon.c
fsl_linflexuart.c
fsl_lpuart.c serial: fsl_lpuart: fix rx buffer and DMA map leaks in start_rx_dma 2026-05-11 17:18:43 +02:00
icom.c serial: icom: remove check for zero baud rate from uart_get_baud_rate() 2026-05-11 17:19:52 +02:00
imx_earlycon.c
imx.c tty: serial: imx: keep dma request disabled before dma transfer setup 2026-03-12 15:25:39 +01:00
ip22zilog.c tty: serial: ip22zilog: Fix section mispatch warning 2026-04-02 15:59:56 +02:00
ip22zilog.h
Kconfig Linux 7.1-rc6 2026-06-01 18:08:02 +02:00
kgdboc.c drivers: serial: kgdboc: Drop checks for CON_ENABLED and CON_BOOT 2025-11-27 15:54:50 +01:00
lantiq.c serial: lantiq: Remove unnecessary print function dev_err() 2025-04-11 16:51:49 +02:00
liteuart.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
lpc32xx_hs.c
ma35d1_serial.c tty: serial: pl011: remove incorrect of_match_ptr annotation 2025-03-20 08:09:56 -07:00
Makefile serial: remove drivers for espressif esp32 2026-03-12 15:06:52 +01:00
max310x.c TTY/Serial fixes for 7.2-rc3 2026-07-12 12:29:38 -07:00
max3100.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mcf.c
men_z135_uart.c serial: men_z135_uart: drop unneeded MODULE_ALIAS 2026-01-16 14:25:04 +01:00
meson_uart.c
milbeaut_usio.c serial: Fix potential null-ptr-deref in mlb_usio_probe() 2025-04-11 16:53:34 +02:00
mpc52xx_uart.c
mps2-uart.c
msm_serial.c serial: msm: Disable DMA for kernel console UART 2026-07-07 17:24:42 +02:00
mux.c serial: mux: Fix kernel doc for mux_poll() 2025-11-26 13:11:17 +01:00
mvebu-uart.c tty: serial: mvebu-uart: convert from round_rate() to determine_rate() 2025-08-14 11:59:04 +02:00
mxs-auart.c serial: mxs-auart: replace hardcoded 1 with predefined macro GPIO_LINE_DIRECTION_IN 2026-05-11 16:55:37 +02:00
omap-serial.c serial: Replace driver usage of UPF_CONS_FLOW 2026-05-11 16:58:38 +02:00
owl-uart.c
pch_uart.c Linux 7.1-rc6 2026-06-01 18:08:02 +02:00
pic32_uart.c serial: pic32_uart: update include to use pic32.h from platform_data 2026-01-30 15:29:08 +01:00
pmac_zilog.c
pmac_zilog.h
pxa.c serial: Replace driver usage of UPF_CONS_FLOW 2026-05-11 16:58:38 +02:00
qcom_geni_serial.c serial: qcom-geni: fix TX DMA buffer flush 2026-07-30 16:46:29 +02:00
rda-uart.c
rp2.c
rsci.c serial: sh-sci: Add support for RZ/G3L RSCI 2026-03-30 17:36:58 +02:00
rsci.h serial: sh-sci: Add support for RZ/G3L RSCI 2026-03-30 17:36:58 +02:00
sa1100.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
samsung_tty.c Linux 7.1-rc6 2026-06-01 18:08:02 +02:00
sb1250-duart.c
sc16is7xx_i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
sc16is7xx_spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
sc16is7xx.c serial: sc16is7xx: enable THRI before filling TX FIFO 2026-07-30 16:45:53 +02:00
sc16is7xx.h serial: sc16is7xx: use KBUILD_MODNAME 2025-10-28 15:25:41 +01:00
sccnxp.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
serial_base_bus.c driver core: Replace dev->of_node_reused with dev_of_node_reused() 2026-04-26 23:50:20 +02:00
serial_base.h
serial_core.c dt-bindings: serial: rs485: remove deprecated .txt binding stub 2026-05-22 11:47:18 +02:00
serial_ctrl.c
serial_mctrl_gpio.c
serial_mctrl_gpio.h
serial_port.c
serial_txx9.c serial: Replace driver usage of UPF_CONS_FLOW 2026-05-11 16:58:38 +02:00
serial-tegra.c
sh-sci-common.h serial: sh-sci: Add support for RZ/G3L RSCI 2026-03-30 17:36:58 +02:00
sh-sci.c Linux 7.1-rc6 2026-06-01 18:08:02 +02:00
sifive.c Linux 6.15-rc4 2025-04-28 10:13:28 +02:00
sprd_serial.c serial: sprd: Return -EPROBE_DEFER when uart clock is not ready 2025-11-26 13:12:19 +01:00
st-asc.c
stm32-usart.c serial: stm32: do not deassert RS485 RTS GPIO prematurely 2025-03-20 08:30:44 -07:00
stm32-usart.h
suncore.c
sunhv.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sunplus-uart.c
sunsab.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
sunsab.h
sunsu.c serial: Replace driver usage of UPF_CONS_FLOW 2026-05-11 16:58:38 +02:00
sunzilog.c
sunzilog.h
tegra-tcu.c
tegra-utc.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
timbuart.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
timbuart.h
uartlite.c serial: uartlite: fix PM runtime usage count underflow on probe 2026-03-12 15:30:51 +01:00
ucc_uart.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vt8500_serial.c
xilinx_uartps.c serial: xilinx_uartps: Drop unused include 2026-03-30 17:36:34 +02:00
zs.c serial: zs: Convert to use a platform device 2026-05-22 11:52:34 +02:00
zs.h serial: zs: Convert to use a platform device 2026-05-22 11:52:34 +02:00