lkml.org 
[lkml]   [2001]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] 2.4.3 and SysRq over serial console
Hello all.  Without the attached patch, SysRq doesn't work over a serial
console here. Has anyone else seen this problem?

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/
diff -Nru a/linux/drivers/char/n_tty.c b/linux/drivers/char/n_tty.c
--- a/linux/drivers/char/n_tty.c Sat Mar 31 16:30:44 2001
+++ b/linux/drivers/char/n_tty.c Sat Mar 31 16:30:44 2001
@@ -40,6 +40,10 @@
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/poll.h>
+#ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */
+#include <linux/sysrq.h>
+#include <linux/console.h>
+#endif

#include <asm/uaccess.h>
#include <asm/system.h>
@@ -458,6 +462,12 @@

static inline void n_tty_receive_break(struct tty_struct *tty)
{
+#ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */
+ struct console *c = console_drivers;
+ if (c && c->device && (c->device(c) == tty->device)
+ && !test_and_change_bit(TTY_DOING_SYSRQ, &tty->flags))
+ return;
+#endif
if (I_IGNBRK(tty))
return;
if (I_BRKINT(tty)) {
@@ -506,6 +516,12 @@
{
unsigned long flags;

+#ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */
+ if (test_and_clear_bit(TTY_DOING_SYSRQ, &tty->flags)) {
+ handle_sysrq(c, NULL, NULL, tty);
+ return;
+ }
+#endif
if (tty->raw) {
put_tty_queue(c, tty);
return;
diff -Nru a/linux/include/linux/tty.h b/linux/include/linux/tty.h
--- a/linux/include/linux/tty.h Sat Mar 31 16:30:44 2001
+++ b/linux/include/linux/tty.h Sat Mar 31 16:30:44 2001
@@ -329,6 +329,9 @@
#define TTY_PUSH 6
#define TTY_CLOSING 7
#define TTY_DONT_FLIP 8
+#ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */
+#define TTY_DOING_SYSRQ 9
+#endif
#define TTY_HW_COOK_OUT 14
#define TTY_HW_COOK_IN 15
#define TTY_PTY_LOCK 16
\
 
 \ /
  Last update: 2005-03-22 13:22    [W:0.498 / U:0.124 seconds]
©2003-2014 Jasper Spaans. Advertise on this site