]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
serial: 8250_dma: terminate correct DMA in tx_dma_flush()
authorJohn Keeping <jkeeping@inmusicbrands.com>
Mon, 24 Feb 2025 12:18:30 +0000 (12:18 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Mar 2025 15:07:42 +0000 (08:07 -0700)
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")
Cc: stable <stable@kernel.org>
Reported-by: Wentao Guan <guanwentao@uniontech.com>
Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20250224121831.1429323-1-jkeeping@inmusicbrands.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_dma.c

index f245a84f4a508d24a6dd47af80daf2c43422b9e3..bdd26c9f34bdf236028bf1388d002951d4b16ec7 100644 (file)
@@ -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)