Re: [PATCH] serial: 8250_dma: terminate correct DMA in tx_dma_flush()

From: Ilpo Järvinen
Date: Wed Mar 19 2025 - 08:22:10 EST


On Mon, 24 Feb 2025, John Keeping wrote:

> When flushing transmit side DMA, it is the transmit channel that should
> be terminated, not the receive channel.
>
> Fixes: 9e512eaaf8f40 ("serial: 8250: Fix fifo underflow on flush")
> Reported-by: Wentao Guan <guanwentao@xxxxxxxxxxxxx>
> Signed-off-by: John Keeping <jkeeping@xxxxxxxxxxxxxxxxx>
> ---
> drivers/tty/serial/8250/8250_dma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c
> index f245a84f4a508..bdd26c9f34bdf 100644
> --- a/drivers/tty/serial/8250/8250_dma.c
> +++ b/drivers/tty/serial/8250/8250_dma.c
> @@ -162,7 +162,7 @@ void serial8250_tx_dma_flush(struct uart_8250_port *p)
> */
> dma->tx_size = 0;
>
> - dmaengine_terminate_async(dma->rxchan);
> + dmaengine_terminate_async(dma->txchan);
> }
>
> int serial8250_rx_dma(struct uart_8250_port *p)
>

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>

--
i.