diff options
| -rw-r--r-- | arch/ia64/hp/sim/simserial.c | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 786e70718ce4..7a8ae0f4b387 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #include <linux/module.h> | 30 | #include <linux/module.h> | 
| 31 | #include <linux/serial.h> | 31 | #include <linux/serial.h> | 
| 32 | #include <linux/serialP.h> | 32 | #include <linux/serialP.h> | 
| 33 | #include <linux/sysrq.h> | ||
| 33 | 34 | ||
| 34 | #include <asm/irq.h> | 35 | #include <asm/irq.h> | 
| 35 | #include <asm/hw_irq.h> | 36 | #include <asm/hw_irq.h> | 
| @@ -149,12 +150,17 @@ static void receive_chars(struct tty_struct *tty, struct pt_regs *regs) | |||
| 149 | seen_esc = 2; | 150 | seen_esc = 2; | 
| 150 | continue; | 151 | continue; | 
| 151 | } else if ( seen_esc == 2 ) { | 152 | } else if ( seen_esc == 2 ) { | 
| 152 | if ( ch == 'P' ) show_state(); /* F1 key */ | 153 | if ( ch == 'P' ) /* F1 */ | 
| 153 | #ifdef CONFIG_KDB | 154 | show_state(); | 
| 154 | if ( ch == 'S' ) | 155 | #ifdef CONFIG_MAGIC_SYSRQ | 
| 155 | kdb(KDB_REASON_KEYBOARD, 0, (kdb_eframe_t) regs); | 156 | if ( ch == 'S' ) { /* F4 */ | 
| 157 | do | ||
| 158 | ch = ia64_ssc(0, 0, 0, 0, | ||
| 159 | SSC_GETCHAR); | ||
| 160 | while (!ch); | ||
| 161 | handle_sysrq(ch, regs, NULL); | ||
| 162 | } | ||
| 156 | #endif | 163 | #endif | 
| 157 | |||
| 158 | seen_esc = 0; | 164 | seen_esc = 0; | 
| 159 | continue; | 165 | continue; | 
| 160 | } | 166 | } | 
