]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
serial: sh-sci: disable DMA for uart_console
authorGeorge G. Davis <george_davis@mentor.com>
Wed, 15 May 2019 03:29:34 +0000 (23:29 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 May 2019 10:18:17 +0000 (12:18 +0200)
As noted in commit 84b40e3b57ee ("serial: 8250: omap: Disable DMA for
console UART"), UART console lines use low-level PIO only access functions
which will conflict with use of the line when DMA is enabled, e.g. when
the console line is also used for systemd messages. So disable DMA
support for UART console lines.

Reported-by: Michael Rodin <mrodin@de.adit-jv.com>
Link: https://patchwork.kernel.org/patch/10929511/
Tested-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: stable@vger.kernel.org
Signed-off-by: George G. Davis <george_davis@mentor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sh-sci.c

index 3cd139752d3f70f9dfce1fe2c43f3eab03cf433a..abc705716aa094fde652c3bc77c18210a5b8b280 100644 (file)
@@ -1557,6 +1557,13 @@ static void sci_request_dma(struct uart_port *port)
 
        dev_dbg(port->dev, "%s: port %d\n", __func__, port->line);
 
+       /*
+        * DMA on console may interfere with Kernel log messages which use
+        * plain putchar(). So, simply don't use it with a console.
+        */
+       if (uart_console(port))
+               return;
+
        if (!port->dev->of_node)
                return;