A mechanism to allow debuggers to intercept panic events early. Signed-Off-By: Jan Beulich Index: 2.6.14-nlkd/include/linux/kernel.h =================================================================== --- 2.6.14-nlkd.orig/include/linux/kernel.h 2005-11-09 10:40:17.000000000 +0100 +++ 2.6.14-nlkd/include/linux/kernel.h 2005-11-04 16:19:34.000000000 +0100 @@ -86,6 +86,7 @@ extern int cond_resched(void); }) extern struct notifier_block *panic_notifier_list; +extern struct notifier_block *prepanic_notifier_list; extern long (*panic_blink)(long time); NORET_TYPE void panic(const char * fmt, ...) __attribute__ ((NORET_AND format (printf, 1, 2))); Index: 2.6.14-nlkd/kernel/panic.c =================================================================== --- 2.6.14-nlkd.orig/kernel/panic.c 2005-11-09 10:40:17.000000000 +0100 +++ 2.6.14-nlkd/kernel/panic.c 2005-11-04 16:19:34.000000000 +0100 @@ -27,8 +27,10 @@ int tainted; EXPORT_SYMBOL(panic_timeout); struct notifier_block *panic_notifier_list; +struct notifier_block *prepanic_notifier_list; EXPORT_SYMBOL(panic_notifier_list); +EXPORT_SYMBOL(prepanic_notifier_list); static int __init panic_setup(char *str) { @@ -76,6 +78,7 @@ NORET_TYPE void panic(const char * fmt, vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); printk(KERN_EMERG "Kernel panic - not syncing: %s\n",buf); + notifier_call_chain(&prepanic_notifier_list, 0, buf); bust_spinlocks(0); /*