[PATCH v1 3/3] serial: 8250_port: Disable DMA operations for kernel console

From: Andy Shevchenko
Date: Tue May 15 2018 - 14:34:23 EST


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.shevchenko@xxxxxxxxxxxxxxx>
---
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