diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-06-12 12:39:59 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-06-12 12:39:59 +0300 |
commit | aaecd681f60fa02c7697198b308336a13b231f30 (patch) | |
tree | a6c6535d9553d63c4150dfe40669376e988f980f /drivers/tty/serial/sh-sci.c | |
parent | b84a9523bab4a2483d7b7566b81a7859c2fd9a78 (diff) | |
parent | 103a4e4a4351d3d5214c4f54fdf89f0f81b692ef (diff) | |
download | linux-aaecd681f60fa02c7697198b308336a13b231f30.tar.xz |
Merge v6.9.4
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sh-sci.c')
-rw-r--r-- | drivers/tty/serial/sh-sci.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index e512eaa57ed5..a6f3517dce74 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1271,9 +1271,14 @@ static void sci_dma_rx_chan_invalidate(struct sci_port *s) static void sci_dma_rx_release(struct sci_port *s) { struct dma_chan *chan = s->chan_rx_saved; + struct uart_port *port = &s->port; + unsigned long flags; + uart_port_lock_irqsave(port, &flags); s->chan_rx_saved = NULL; sci_dma_rx_chan_invalidate(s); + uart_port_unlock_irqrestore(port, flags); + dmaengine_terminate_sync(chan); dma_free_coherent(chan->device->dev, s->buf_len_rx * 2, s->rx_buf[0], sg_dma_address(&s->sg_rx[0])); |