[PATCH] fix sysrq handling bug in sn_console.c

From: Jesse Barnes
Date: Mon Sep 13 2004 - 16:27:11 EST


Fix a stupid bug in the sysrq handling in sn_console.c. Instead of eating all
characters in the sysrq string (preventing them from getting to the tty
layer), only eat those following 'ESC' since that's a pretty important
character for various things. Please apply before 2.6.9 is released as the
console is very unfriendly to use without it.

Signed-off-by: Jesse Barnes <jbarnes@xxxxxxx>

Thanks,
Jesse
--- linux-2.5-stock/drivers/serial/sn_console.c 2004-09-10 15:06:37.000000000 -0700
+++ linux-2.6.9-rc1-mm5/drivers/serial/sn_console.c 2004-09-13 14:08:03.000000000 -0700
@@ -596,10 +596,15 @@
sysrq_requested = jiffies;
sysrq_serial_ptr = sysrq_serial_str;
}
- continue; /* ignore the whole sysrq string */
+ /*
+ * ignore the whole sysrq string except for the
+ * leading escape
+ */
+ if (ch != '\e')
+ continue;
}
else
- sysrq_serial_ptr = sysrq_serial_str;
+ sysrq_serial_ptr = sysrq_serial_str;
#endif /* CONFIG_MAGIC_SYSRQ */

/* record the character to pass up to the tty layer */
@@ -611,8 +616,6 @@
if (tty->flip.count == TTY_FLIPBUF_SIZE)
break;
}
- else {
- }
port->sc_port.icount.rx++;
}