added module support for keyboard debugger entry point and
notify_die entry point.
Signed-off-by: Jeffrey Vernon Merkey ([email protected])
--- 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) {
[email protected] 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
> [email protected] 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