mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
Revert "serial: 8250_port: Drop duplicate NULL check"
This reverts commit7885af04df. Commit7885af04df("serial: 8250_port: Drop duplicate NULL check") added `up->dma = NULL;` to serial8250_release_dma(), with the stated intent of making sure DMA would not be used again after release. However, up->dma is assigned once at probe time. serial8250_do_startup() only calls serial8250_request_dma() when up->dma is non-NULL, so after the first close the pointer stays NULL and DMA is never re-acquired. On Intel Tangier (Edison) with HSU DMA this causes a regression: the first port open uses TX DMA, the second and later opens transmit in PIO mode, producing 64-byte FIFO bursts with ~50us gaps between them. Fixes:7885af04df("serial: 8250_port: Drop duplicate NULL check") Cc: stable@kernel.org Signed-off-by: Ferry Toth <ftoth@exalondelft.nl> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20261010193755.187706-2-ftoth@exalondelft.nl Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d6a0791098
commit
6ae994d513
|
|
@ -2452,8 +2452,8 @@ void serial8250_do_shutdown(struct uart_port *port)
|
|||
|
||||
synchronize_irq(port->irq);
|
||||
|
||||
serial8250_release_dma(up);
|
||||
up->dma = NULL;
|
||||
if (up->dma)
|
||||
serial8250_release_dma(up);
|
||||
|
||||
scoped_guard(uart_port_lock_irqsave, port) {
|
||||
if (port->flags & UPF_FOURPORT) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user