Home Home > GIT Browse > SLE12-SP4
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-07-16 16:19:33 +0200
committerTakashi Iwai <tiwai@suse.de>2019-07-16 16:19:49 +0200
commit65242c8a9e12c0456b24970402cd2e765c4c6d6d (patch)
treecd319b842f3e101a6626f6ec39a4f2533278b21b
parent4fe091fe5e8cab1d03033fd75b38a31c4c327e2a (diff)
Revert "serial: 8250: Don't service RX FIFO if interrupts are
disabled" (bsc#1051510).
-rw-r--r--patches.drivers/Revert-serial-8250-Don-t-service-RX-FIFO-if-interrup.patch44
-rw-r--r--series.conf1
2 files changed, 45 insertions, 0 deletions
diff --git a/patches.drivers/Revert-serial-8250-Don-t-service-RX-FIFO-if-interrup.patch b/patches.drivers/Revert-serial-8250-Don-t-service-RX-FIFO-if-interrup.patch
new file mode 100644
index 0000000000..4fb65e1f90
--- /dev/null
+++ b/patches.drivers/Revert-serial-8250-Don-t-service-RX-FIFO-if-interrup.patch
@@ -0,0 +1,44 @@
+From 3f2640ed7be838c3f05c0d2b0f7c7508e7431e48 Mon Sep 17 00:00:00 2001
+From: Oliver Barta <o.barta89@gmail.com>
+Date: Wed, 19 Jun 2019 10:16:39 +0200
+Subject: [PATCH] Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
+Git-commit: 3f2640ed7be838c3f05c0d2b0f7c7508e7431e48
+Patch-mainline: v5.3-rc1
+References: bsc#1051510
+
+This reverts commit 2e9fe539108320820016f78ca7704a7342788380.
+
+Reading LSR unconditionally but processing the error flags only if
+UART_IIR_RDI bit was set before in IIR may lead to a loss of transmission
+error information on UARTs where the transmission error flags are cleared
+by a read of LSR. Information are lost in case an error is detected right
+before the read of LSR while processing e.g. an UART_IIR_THRI interrupt.
+
+Signed-off-by: Oliver Barta <o.barta89@gmail.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Fixes: 2e9fe5391083 ("serial: 8250: Don't service RX FIFO if interrupts are disabled")
+Cc: stable <stable@vger.kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/tty/serial/8250/8250_port.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
+index a6fabc7e3b13..c1cec808571b 100644
+--- a/drivers/tty/serial/8250/8250_port.c
++++ b/drivers/tty/serial/8250/8250_port.c
+@@ -1867,8 +1867,7 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir)
+
+ status = serial_port_in(port, UART_LSR);
+
+- if (status & (UART_LSR_DR | UART_LSR_BI) &&
+- iir & UART_IIR_RDI) {
++ if (status & (UART_LSR_DR | UART_LSR_BI)) {
+ if (!up->dma || handle_rx_dma(up, iir))
+ status = serial8250_rx_chars(up, status);
+ }
+--
+2.16.4
+
diff --git a/series.conf b/series.conf
index 1aa2fc553b..cfb7ff2fa1 100644
--- a/series.conf
+++ b/series.conf
@@ -22915,6 +22915,7 @@
patches.drivers/serial-uartps-Fix-long-line-over-80-chars.patch
patches.drivers/serial-uartps-Do-not-add-a-trailing-semicolon-to-mac.patch
patches.drivers/serial-uartps-Remove-useless-return-from-cdns_uart_p.patch
+ patches.drivers/Revert-serial-8250-Don-t-service-RX-FIFO-if-interrup.patch
patches.drivers/memstick-Fix-error-cleanup-path-of-memstick_init.patch
patches.fixes/0001-ocfs2-add-last-unlock-times-in-locking_state.patch
patches.fixes/0002-ocfs2-add-locking-filter-debugfs-file.patch