This patch implements new notifier function to panic_notifier_list. We can
change the list of order by debugfs.
Thanks,
---
Signed-off-by: Takenori Nagano <t-nagano@ah.jp.nec.com>
---
diff -uprN linux-2.6.23-rc9.orig/arch/alpha/kernel/setup.c
linux-2.6.23-rc9/arch/alpha/kernel/setup.c
--- linux-2.6.23-rc9.orig/arch/alpha/kernel/setup.c 2007-10-02
12:24:52.000000000 +0900
+++ linux-2.6.23-rc9/arch/alpha/kernel/setup.c 2007-10-04 09:49:34.440000000 +0900
@@ -45,14 +45,22 @@
#include <asm/io.h>
#include <linux/log2.h>
-extern struct atomic_notifier_head panic_notifier_list;
+extern struct tunable_notifier_head panic_notifier_list;
static int alpha_panic_event(struct notifier_block *, unsigned long, void *);
-static struct notifier_block alpha_panic_block = {
+static struct notifier_block alpha_panic_block_base = {
alpha_panic_event,
NULL,
INT_MAX /* try to do it first */
};
+static struct tunable_notifier_block alpha_panic_block = {
+ &alpha_panic_block_base,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/system.h>
@@ -522,8 +530,8 @@ setup_arch(char **cmdline_p)
}
/* Register a call for panic conditions. */
- atomic_notifier_chain_register(&panic_notifier_list,
- &alpha_panic_block);
+ tunable_notifier_chain_register(&panic_notifier_list,
+ &alpha_panic_block, "alpha_panic", NULL);
#ifdef CONFIG_ALPHA_GENERIC
/* Assume that we've booted from SRM if we haven't booted from MILO.
diff -uprN linux-2.6.23-rc9.orig/arch/arm/mach-omap1/board-voiceblue.c
linux-2.6.23-rc9/arch/arm/mach-omap1/board-voiceblue.c
--- linux-2.6.23-rc9.orig/arch/arm/mach-omap1/board-voiceblue.c 2007-10-02
12:24:52.000000000 +0900
+++ linux-2.6.23-rc9/arch/arm/mach-omap1/board-voiceblue.c 2007-10-04
09:53:17.008000000 +0900
@@ -228,14 +228,23 @@ static int panic_event(struct notifier_b
return NOTIFY_DONE;
}
-static struct notifier_block panic_block = {
+static struct ...