It will be too tricky and error prone to allow DMA operations on kernel
console.

Disable any kind of DMA operations in such case.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
---
 drivers/tty/serial/8250/8250_port.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/8250/8250_port.c 
b/drivers/tty/serial/8250/8250_port.c
index db97222a1bf4..9a4696ea728b 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -2371,7 +2371,10 @@ int serial8250_do_startup(struct uart_port *port)
         * Request DMA channels for both RX and TX.
         */
        if (up->dma) {
-               retval = serial8250_request_dma(up);
+               if (uart_console(port))
+                       retval = -ENXIO;
+               else
+                       retval = serial8250_request_dma(up);
                if (retval)
                        pr_warn_ratelimited("ttyS%d - failed to request DMA\n",
                                            serial_index(port));
-- 
2.17.0

Reply via email to