The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 2.6.27-rc3 19/28] mdb: adding notify_die handler for keyboard debugger entry
@ 2008-08-16  3:41 jmerkey
  2008-08-16  6:30 ` Andi Kleen
  0 siblings, 1 reply; 3+ messages in thread
From: jmerkey @ 2008-08-16  3:41 UTC (permalink / raw)
  To: linux-kernel

added module support for keyboard debugger entry point and
notify_die entry point.

Signed-off-by: Jeffrey Vernon Merkey (jmerkey@wolfmountaingroup.com)

--- a/drivers/char/keyboard.c	2008-08-15 21:26:13.000000000 -0600
+++ b/drivers/char/keyboard.c	2008-08-15 15:41:57.000000000 -0600
@@ -44,6 +44,10 @@
 #include <linux/notifier.h>
 #include <linux/jiffies.h>
 
+#if defined(CONFIG_MDB) || defined(CONFIG_MDB_MODULE)
+#include <linux/kdebug.h>
+#endif
+
 extern void ctrl_alt_del(void);
 
 #define to_handle_h(n) container_of(n, struct input_handle, h_node)
@@ -1180,6 +1184,15 @@
 			if (keycode < BTN_MISC && printk_ratelimit())
 				printk(KERN_WARNING "keyboard.c: can't emulate rawmode for keycode %d\n", keycode);
 
+#if defined(CONFIG_MDB) || defined(CONFIG_MDB_MODULE)
+	if (down && !rep && keycode == KEY_PAUSE)
+        {
+	   if (notify_die(DIE_KERNELDEBUG, NULL, get_irq_regs(),
+                          0, -1, SIGINT) == NOTIFY_STOP)
+	      return;
+	}
+#endif
+
 #ifdef CONFIG_MAGIC_SYSRQ	       /* Handle the SysRq Hack */
 	if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt))) {
 		if (!sysrq_down) {

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2.6.27-rc3 19/28] mdb: adding notify_die handler for keyboard debugger entry
  2008-08-16  3:41 [PATCH 2.6.27-rc3 19/28] mdb: adding notify_die handler for keyboard debugger entry jmerkey
@ 2008-08-16  6:30 ` Andi Kleen
  2008-08-16  6:33   ` jmerkey
  0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2008-08-16  6:30 UTC (permalink / raw)
  To: jmerkey; +Cc: linux-kernel

jmerkey@wolfmountaingroup.com writes:
 
> +#if defined(CONFIG_MDB) || defined(CONFIG_MDB_MODULE)
> +	if (down && !rep && keycode == KEY_PAUSE)
> +        {
> +	   if (notify_die(DIE_KERNELDEBUG, NULL, get_irq_regs(),
> +                          0, -1, SIGINT) == NOTIFY_STOP)
> +	      return;
> +	}
> +#endif
> +
>  #ifdef CONFIG_MAGIC_SYSRQ	       /* Handle the SysRq Hack */
>  	if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt))) {
>  		if (!sysrq_down) {

A nicer alternative to adding an hook here would be to use 
register_sysrq_key() to register a sysrq key that triggers
the debugger.  That function is also already exported.

-Andi

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2.6.27-rc3 19/28] mdb: adding notify_die handler for  keyboard debugger entry
  2008-08-16  6:30 ` Andi Kleen
@ 2008-08-16  6:33   ` jmerkey
  0 siblings, 0 replies; 3+ messages in thread
From: jmerkey @ 2008-08-16  6:33 UTC (permalink / raw)
  To: Andi Kleen; +Cc: jmerkey, linux-kernel

> jmerkey@wolfmountaingroup.com writes:
>
>> +#if defined(CONFIG_MDB) || defined(CONFIG_MDB_MODULE)
>> +	if (down && !rep && keycode == KEY_PAUSE)
>> +        {
>> +	   if (notify_die(DIE_KERNELDEBUG, NULL, get_irq_regs(),
>> +                          0, -1, SIGINT) == NOTIFY_STOP)
>> +	      return;
>> +	}
>> +#endif
>> +
>>  #ifdef CONFIG_MAGIC_SYSRQ	       /* Handle the SysRq Hack */
>>  	if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt)))
>> {
>>  		if (!sysrq_down) {
>
> A nicer alternative to adding an hook here would be to use
> register_sysrq_key() to register a sysrq key that triggers
> the debugger.  That function is also already exported.
>
> -Andi
>

Got it.  Added to the list.  I will Instrument it.

Jeff


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-08-16  6:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-16  3:41 [PATCH 2.6.27-rc3 19/28] mdb: adding notify_die handler for keyboard debugger entry jmerkey
2008-08-16  6:30 ` Andi Kleen
2008-08-16  6:33   ` jmerkey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox