Skip to contentSkip to conversation

Patch "serial: 8250: Check UART_SCR is writable" has been added to the 4.0-stable tree

PATCH [email protected] 1 participant 1 message May 2, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

serial: 8250: Check UART_SCR is writable

to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
serial-8250-check-uart_scr-is-writable.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From f01a0bd8921b9d6668d41fae3198970e6318f532 Mon Sep 17 00:00:00 2001

From: Peter Hurley <[email protected]>
Date: Mon, 9 Mar 2015 14:05:01 -0400
Subject: serial: 8250: Check UART_SCR is writable

From: Peter Hurley <[email protected]>

commit f01a0bd8921b9d6668d41fae3198970e6318f532 upstream.

Au1x00/RT2800+ doesn't implement the 8250 scratch register (and this may be true of other h/w currently supported by the 8250 driver); read back the canary value written to the scratch register to enable the console h/w restart after resume from system suspend.

Fixes 4516d50aabedb ("serial: 8250: Use canary to restart console ...")
---
 drivers/tty/serial/8250/8250_core.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/tty/serial/8250/8250_core.c +2 -1
@@ -3444,7 +3444,8 @@ void serial8250_suspend_port(int line)
 	    port->type != PORT_8250) {
 		unsigned char canary = 0xa5;
 		serial_out(up, UART_SCR, canary);
-		up->canary = canary;
+		if (serial_in(up, UART_SCR) == canary)
+			up->canary = canary;
 	}
 
 	uart_suspend_port(&serial8250_reg, port);

Patches currently in stable-queue which might be from [email protected] are

queue-4.0/serial-8250-check-uart_scr-is-writable.patch