FAILED: patch "[PATCH] tty: serial: lpuart: fix lpuart32_write usage" failed to apply to 4.14-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9ea40db477c024dcb87321b7f32bd6ea12130ac2 Mon Sep 17 00:00:00 2001
From: Peng Fan <[email protected]>
Date: Tue, 29 Sep 2020 17:19:20 +0800
Subject: [PATCH] tty: serial: lpuart: fix lpuart32_write usage
The 2nd and 3rd parameter were wrongly used, and cause kernel abort when doing kgdb debug.
Fixes 1da17d7cf8e2 ("tty: serial: fsl_lpuart: Use appropriate lpuart32_* I/O funcs")
Cc stable <[email protected]>
Signed-off-by Peng Fan <[email protected]>
Signed-off-by Greg Kroah-Hartman <[email protected]>
drivers/tty/serial/fsl_lpuart.c +6 -8
@@ -649,26 +649,24 @@ static int lpuart32_poll_init(struct uart_port *port)spin_lock_irqsave (&sport->port.lock, flags);/* Disable Rx & Tx */ -lpuart32_write (&sport->port,UARTCTRL ,0 ); +lpuart32_write (&sport->port,0 ,UARTCTRL ); temp =lpuart32_read (&sport->port,UARTFIFO );/* Enable Rx and Tx FIFO */ -lpuart32_write (&sport->port,UARTFIFO , - temp |UARTFIFO_RXFE |UARTFIFO_TXFE ); +lpuart32_write (&sport->port, temp |UARTFIFO_RXFE |UARTFIFO_TXFE ,UARTFIFO );/* flush Tx and Rx FIFO */ -lpuart32_write (&sport->port,UARTFIFO , -UARTFIFO_TXFLUSH |UARTFIFO_RXFLUSH ); +lpuart32_write (&sport->port,UARTFIFO_TXFLUSH |UARTFIFO_RXFLUSH ,UARTFIFO );/* explicitly clear RDRF */ if (lpuart32_read (&sport->port,UARTSTAT ) &UARTSTAT_RDRF ) {lpuart32_read (&sport->port,UARTDATA ); -lpuart32_write (&sport->port,UARTFIFO ,UARTFIFO_RXUF ); +lpuart32_write (&sport->port,UARTFIFO_RXUF ,UARTFIFO ); }/* Enable Rx and Tx */ -lpuart32_write (&sport->port,UARTCTRL ,UARTCTRL_RE |UARTCTRL_TE ); +lpuart32_write (&sport->port,UARTCTRL_RE |UARTCTRL_TE ,UARTCTRL );spin_unlock_irqrestore (&sport->port.lock, flags);return 0 ;
@@ -677,7 +675,7 @@ static int lpuart32_poll_init(struct uart_port *port)static void lpuart32_poll_put_char (struct uart_port *port,unsigned char c) {lpuart32_wait_bit_set (port,UARTSTAT ,UARTSTAT_TDRE ); -lpuart32_write (port,UARTDATA , c); +lpuart32_write (port, c,UARTDATA ); }static int lpuart32_poll_get_char (struct uart_port *port)