Re: [PATCH 2/2] serial: imx: dma_unmap_sg buffers on shutdown
From: Sebastian Reichel <hidden>
Date: 2018-05-08 13:40:53
Also in:
lkml
Attachments
- signature.asc [application/pgp-signature] 833 bytes
From: Sebastian Reichel <hidden>
Date: 2018-05-08 13:40:53
Also in:
lkml
Hi, On Tue, May 08, 2018 at 08:43:51AM +0200, Uwe Kleine-König wrote:
On Mon, May 07, 2018 at 11:36:10PM +0200, Sebastian Reichel wrote:quoted
This properly unmaps DMA SG on device shutdown. Reported-by: Nandor Han <redacted> Suggested-by: Nandor Han <redacted> Signed-off-by: Sebastian Reichel <redacted> --- drivers/tty/serial/imx.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 3ca767b1162a..6c53e74244ec 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c@@ -1425,10 +1425,18 @@ static void imx_uart_shutdown(struct uart_port *port) u32 ucr1, ucr2; if (sport->dma_is_enabled) { - sport->dma_is_rxing = 0; - sport->dma_is_txing = 0; dmaengine_terminate_sync(sport->dma_chan_tx); + if (sport->dma_is_txing) { + dma_unmap_sg(sport->port.dev, &sport->tx_sgl[0], + sport->dma_tx_nents, DMA_TO_DEVICE); + sport->dma_is_txing = 0; + }did you find this because the kernel crashed or consumed more and more memory, or is this "only" a finding of reading the source code? If the former it would be great to point out in the commit log, if the latter, I wonder if this is a real problem that warrants a stable backport.
A bit of both. One of Collabora's customers had a (scarce) kernel crash in imx-serial and modified multiple things in the driver. The crash is gone, but it's not clear which change fixed it. I could not reproduce the crash so far and I'm currently rebasing and splitting their changes into upstreamable portions with proper patch descriptions. From reading the source this looked like a real issue. -- Sebastian