[RFC] [PATCH] Adding ctrl-o sysrq hack support to 8250 driver

From: Sachin Sant
Date: Wed Nov 30 2005 - 06:14:38 EST


The following patch will allow a user to use sysrq keys over a serial console using the ctrl-o key sequence. This is similar to functionality provided by the hvc console drivers on PPC boxes.


Signed-off-by: Sachin Sant <sachinp@xxxxxxxxxx>

diff -Naurp linux-2.6.14.3/drivers/serial/8250.c linux-2.6.14.3-new/drivers/serial/8250.c
--- linux-2.6.14.3/drivers/serial/8250.c 2005-11-11 11:03:12.000000000 +0530
+++ linux-2.6.14.3-new/drivers/serial/8250.c 2005-11-17 15:12:42.000000000 +0530
@@ -1084,6 +1084,23 @@ receive_chars(struct uart_8250_port *up,
*/
}
ch = serial_inp(up, UART_RX);
+
+#if defined(CONFIG_MAGIC_SYSRQ) && defined(CONFIG_SERIAL_CORE_CONSOLE)
+ /* Handle the SysRq ^O Hack */
+ if (ch == '\x0f') {
+ up->port.sysrq = jiffies + HZ*5;
+ goto ignore_char;
+ }
+ if (up->port.sysrq) {
+ int swallow;
+ spin_unlock(&up->port.lock);
+ swallow = uart_handle_sysrq_char(&up->port, ch, regs);
+ spin_lock(&up->port.lock);
+ if (swallow)
+ goto ignore_char;
+ }
+#endif /* CONFIG_MAGIC_SYSRQ && CONFIG_SERIAL_CORE_CONSOLE */
+
flag = TTY_NORMAL;
up->port.icount.rx++;