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: > > This properly unmaps DMA SG on device shutdown. > > > > Reported-by: Nandor Han <nandor.han@xxxxxx> > > Suggested-by: Nandor Han <nandor.han@xxxxxx> > > Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> > > --- > > 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
Attachment:
signature.asc
Description: PGP signature