Here's an updated version of that patch that fixes arm, tested with a
netwinder config.
Signed-off-by: Christoph Hellwig <[EMAIL PROTECTED]>
Index: linux-2.6/arch/arm/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/arm/kernel/traps.c 2007-03-23 18:30:20.000000000
+0100
+++ linux-2.6/arch/arm/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -232,8 +232,8 @@ NORET_TYPE void die(const char *str, str
do_exit(SIGSEGV);
}
-void notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
- unsigned long err, unsigned long trap)
+void arm_notify_die(const char *str, struct pt_regs *regs,
+ struct siginfo *info, unsigned long err, unsigned long trap)
{
if (user_mode(regs)) {
current->thread.error_code = err;
@@ -316,7 +316,7 @@ asmlinkage void do_undefinstr(struct pt_
info.si_code = ILL_ILLOPC;
info.si_addr = pc;
- notify_die("Oops - undefined instruction", regs, &info, 0, 6);
+ arm_notify_die("Oops - undefined instruction", regs, &info, 0, 6);
}
asmlinkage void do_unexp_fiq (struct pt_regs *regs)
@@ -370,7 +370,7 @@ static int bad_syscall(int n, struct pt_
info.si_addr = (void __user *)instruction_pointer(regs) -
(thumb_mode(regs) ? 2 : 4);
- notify_die("Oops - bad syscall", regs, &info, n, 0);
+ arm_notify_die("Oops - bad syscall", regs, &info, n, 0);
return regs->ARM_r0;
}
@@ -414,7 +414,7 @@ asmlinkage int arm_syscall(int no, struc
info.si_code = SEGV_MAPERR;
info.si_addr = NULL;
- notify_die("branch through zero", regs, &info, 0, 0);
+ arm_notify_die("branch through zero", regs, &info, 0, 0);
return 0;
case NR(breakpoint): /* SWI BREAK_POINT */
@@ -550,7 +550,7 @@ asmlinkage int arm_syscall(int no, struc
info.si_addr = (void __user *)instruction_pointer(regs) -
(thumb_mode(regs) ? 2 : 4);
- notify_die("Oops - bad syscall(2)", regs, &info, no, 0);
+ arm_notify_die("Oops - bad syscall(2)", regs, &info, no, 0);
return 0;
}
@@ -624,7 +624,7 @@ baddataabort(int code, unsigned long ins
info.si_code = ILL_ILLOPC;
info.si_addr = (void __user *)addr;
- notify_die("unknown data abort code", regs, &info, instr, 0);
+ arm_notify_die("unknown data abort code", regs, &info, instr, 0);
}
void __attribute__((noreturn)) __bug(const char *file, int line)
Index: linux-2.6/arch/avr32/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/avr32/kernel/kprobes.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/avr32/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -15,7 +15,7 @@
#include <linux/ptrace.h>
#include <asm/cacheflush.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/ocd.h>
DEFINE_PER_CPU(struct kprobe *, current_kprobe);
Index: linux-2.6/arch/avr32/kernel/ptrace.c
===================================================================
--- linux-2.6.orig/arch/avr32/kernel/ptrace.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/avr32/kernel/ptrace.c 2007-03-23 18:35:41.000000000
+0100
@@ -21,7 +21,7 @@
#include <asm/uaccess.h>
#include <asm/ocd.h>
#include <asm/mmu_context.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
static struct pt_regs *get_user_regs(struct task_struct *tsk)
{
@@ -300,7 +300,7 @@ asmlinkage void do_debug_priv(struct pt_
else
die_val = DIE_BREAKPOINT;
- if (notify_die(die_val, regs, 0, SIGTRAP) == NOTIFY_STOP)
+ if (notify_die(die_val, "ptrace", regs, 0, 0, SIGTRAP) == NOTIFY_STOP)
return;
if (likely(ds & DS_SSS)) {
Index: linux-2.6/arch/avr32/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/avr32/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/avr32/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -151,22 +151,6 @@ void dump_stack(void)
}
EXPORT_SYMBOL(dump_stack);
-ATOMIC_NOTIFIER_HEAD(avr32_die_chain);
-
-int register_die_notifier(struct notifier_block *nb)
-{
- pr_debug("register_die_notifier: %p\n", nb);
-
- return atomic_notifier_chain_register(&avr32_die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier);
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&avr32_die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier);
-
static DEFINE_SPINLOCK(die_lock);
void __die(const char *str, struct pt_regs *regs, unsigned long err,
Index: linux-2.6/arch/avr32/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/avr32/mm/fault.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/avr32/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -13,7 +13,7 @@
#include <linux/module.h>
#include <linux/pagemap.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/mmu_context.h>
#include <asm/sysreg.h>
#include <asm/uaccess.h>
Index: linux-2.6/arch/i386/kernel/crash.c
===================================================================
--- linux-2.6.orig/arch/i386/kernel/crash.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/i386/kernel/crash.c 2007-03-23 18:35:41.000000000 +0100
@@ -22,7 +22,7 @@
#include <asm/nmi.h>
#include <asm/hw_irq.h>
#include <asm/apic.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/smp.h>
#include <mach_ipi.h>
Index: linux-2.6/arch/i386/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/i386/kernel/kprobes.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/i386/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -31,8 +31,8 @@
#include <linux/kprobes.h>
#include <linux/ptrace.h>
#include <linux/preempt.h>
+#include <linux/kdebug.h>
#include <asm/cacheflush.h>
-#include <asm/kdebug.h>
#include <asm/desc.h>
#include <asm/uaccess.h>
Index: linux-2.6/arch/i386/kernel/nmi.c
===================================================================
--- linux-2.6.orig/arch/i386/kernel/nmi.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/i386/kernel/nmi.c 2007-03-23 18:35:41.000000000 +0100
@@ -24,10 +24,10 @@
#include <linux/kprobes.h>
#include <linux/cpumask.h>
#include <linux/kernel_stat.h>
+#include <linux/kdebug.h>
#include <asm/smp.h>
#include <asm/nmi.h>
-#include <asm/kdebug.h>
#include <asm/intel_arch_perfmon.h>
#include "mach_traps.h"
Index: linux-2.6/arch/i386/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/i386/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/i386/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -52,7 +52,7 @@
#include <asm/unwind.h>
#include <asm/smp.h>
#include <asm/arch_hooks.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/stacktrace.h>
#include <linux/module.h>
@@ -95,20 +95,7 @@ asmlinkage void machine_check(void);
int kstack_depth_to_print = 24;
static unsigned int code_bytes = 64;
-ATOMIC_NOTIFIER_HEAD(i386die_chain);
-int register_die_notifier(struct notifier_block *nb)
-{
- vmalloc_sync_all();
- return atomic_notifier_chain_register(&i386die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier); /* used modular by kdb */
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&i386die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier); /* used modular by kdb */
static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)
{
Index: linux-2.6/arch/i386/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/i386/mm/fault.c 2007-03-23 18:30:21.000000000 +0100
+++ linux-2.6/arch/i386/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -23,10 +23,10 @@
#include <linux/module.h>
#include <linux/kprobes.h>
#include <linux/uaccess.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/desc.h>
-#include <asm/kdebug.h>
#include <asm/segment.h>
extern void die(const char *,struct pt_regs *,long);
Index: linux-2.6/arch/i386/oprofile/nmi_int.c
===================================================================
--- linux-2.6.orig/arch/i386/oprofile/nmi_int.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/i386/oprofile/nmi_int.c 2007-03-23 18:35:41.000000000
+0100
@@ -14,10 +14,10 @@
#include <linux/sysdev.h>
#include <linux/slab.h>
#include <linux/moduleparam.h>
+#include <linux/kdebug.h>
#include <asm/nmi.h>
#include <asm/msr.h>
#include <asm/apic.h>
-#include <asm/kdebug.h>
#include "op_counter.h"
#include "op_x86_model.h"
Index: linux-2.6/arch/i386/oprofile/nmi_timer_int.c
===================================================================
--- linux-2.6.orig/arch/i386/oprofile/nmi_timer_int.c 2007-03-23
18:30:21.000000000 +0100
+++ linux-2.6/arch/i386/oprofile/nmi_timer_int.c 2007-03-23
18:35:41.000000000 +0100
@@ -12,12 +12,11 @@
#include <linux/errno.h>
#include <linux/oprofile.h>
#include <linux/rcupdate.h>
-
+#include <linux/kdebug.h>
#include <asm/nmi.h>
#include <asm/apic.h>
#include <asm/ptrace.h>
-#include <asm/kdebug.h>
static int profile_timer_exceptions_notify(struct notifier_block *self,
unsigned long val, void *data)
Index: linux-2.6/arch/ia64/kernel/crash.c
===================================================================
--- linux-2.6.orig/arch/ia64/kernel/crash.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/ia64/kernel/crash.c 2007-03-23 18:35:41.000000000 +0100
@@ -16,8 +16,8 @@
#include <linux/elfcore.h>
#include <linux/sysctl.h>
#include <linux/init.h>
+#include <linux/kdebug.h>
-#include <asm/kdebug.h>
#include <asm/mca.h>
int kdump_status[NR_CPUS];
Index: linux-2.6/arch/ia64/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/ia64/kernel/kprobes.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/ia64/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -29,9 +29,9 @@
#include <linux/slab.h>
#include <linux/preempt.h>
#include <linux/moduleloader.h>
+#include <linux/kdebug.h>
#include <asm/pgtable.h>
-#include <asm/kdebug.h>
#include <asm/sections.h>
#include <asm/uaccess.h>
Index: linux-2.6/arch/ia64/kernel/mca.c
===================================================================
--- linux-2.6.orig/arch/ia64/kernel/mca.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/ia64/kernel/mca.c 2007-03-23 18:35:41.000000000 +0100
@@ -72,9 +72,9 @@
#include <linux/smp.h>
#include <linux/workqueue.h>
#include <linux/cpumask.h>
+#include <linux/kdebug.h>
#include <asm/delay.h>
-#include <asm/kdebug.h>
#include <asm/machvec.h>
#include <asm/meminit.h>
#include <asm/page.h>
Index: linux-2.6/arch/ia64/kernel/process.c
===================================================================
--- linux-2.6.orig/arch/ia64/kernel/process.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/ia64/kernel/process.c 2007-03-23 18:35:41.000000000
+0100
@@ -27,13 +27,13 @@
#include <linux/efi.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
+#include <linux/kdebug.h>
#include <asm/cpu.h>
#include <asm/delay.h>
#include <asm/elf.h>
#include <asm/ia32.h>
#include <asm/irq.h>
-#include <asm/kdebug.h>
#include <asm/kexec.h>
#include <asm/pgalloc.h>
#include <asm/processor.h>
Index: linux-2.6/arch/ia64/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/ia64/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/ia64/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -16,33 +16,17 @@
#include <linux/hardirq.h>
#include <linux/kprobes.h>
#include <linux/delay.h> /* for ssleep() */
+#include <linux/kdebug.h>
#include <asm/fpswa.h>
#include <asm/ia32.h>
#include <asm/intrinsics.h>
#include <asm/processor.h>
#include <asm/uaccess.h>
-#include <asm/kdebug.h>
fpswa_interface_t *fpswa_interface;
EXPORT_SYMBOL(fpswa_interface);
-ATOMIC_NOTIFIER_HEAD(ia64die_chain);
-
-int
-register_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&ia64die_chain, nb);
-}
-EXPORT_SYMBOL_GPL(register_die_notifier);
-
-int
-unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&ia64die_chain, nb);
-}
-EXPORT_SYMBOL_GPL(unregister_die_notifier);
-
void __init
trap_init (void)
{
Index: linux-2.6/arch/ia64/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/ia64/mm/fault.c 2007-03-23 18:30:21.000000000 +0100
+++ linux-2.6/arch/ia64/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -10,12 +10,12 @@
#include <linux/smp_lock.h>
#include <linux/interrupt.h>
#include <linux/kprobes.h>
+#include <linux/kdebug.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
#include <asm/system.h>
#include <asm/uaccess.h>
-#include <asm/kdebug.h>
extern void die (char *, struct pt_regs *, long);
Index: linux-2.6/arch/ia64/sn/kernel/xpc_main.c
===================================================================
--- linux-2.6.orig/arch/ia64/sn/kernel/xpc_main.c 2007-03-23
18:30:21.000000000 +0100
+++ linux-2.6/arch/ia64/sn/kernel/xpc_main.c 2007-03-23 18:35:41.000000000
+0100
@@ -55,9 +55,9 @@
#include <linux/delay.h>
#include <linux/reboot.h>
#include <linux/completion.h>
+#include <linux/kdebug.h>
#include <asm/sn/intr.h>
#include <asm/sn/sn_sal.h>
-#include <asm/kdebug.h>
#include <asm/uaccess.h>
#include <asm/sn/xpc.h>
@@ -1332,7 +1332,7 @@ xpc_init(void)
dev_warn(xpc_part, "can't register reboot notifier\n");
}
- /* add ourselves to the die_notifier list (i.e., ia64die_chain) */
+ /* add ourselves to the die_notifier list */
ret = register_die_notifier(&xpc_die_notifier);
if (ret != 0) {
dev_warn(xpc_part, "can't register die notifier\n");
Index: linux-2.6/arch/powerpc/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/powerpc/kernel/kprobes.c 2007-03-23
18:30:21.000000000 +0100
+++ linux-2.6/arch/powerpc/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -30,8 +30,8 @@
#include <linux/ptrace.h>
#include <linux/preempt.h>
#include <linux/module.h>
+#include <linux/kdebug.h>
#include <asm/cacheflush.h>
-#include <asm/kdebug.h>
#include <asm/sstep.h>
#include <asm/uaccess.h>
Index: linux-2.6/arch/powerpc/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/powerpc/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/powerpc/kernel/traps.c 2007-03-23 18:35:41.000000000
+0100
@@ -33,8 +33,8 @@
#include <linux/kexec.h>
#include <linux/backlight.h>
#include <linux/bug.h>
+#include <linux/kdebug.h>
-#include <asm/kdebug.h>
#include <asm/pgtable.h>
#include <asm/uaccess.h>
#include <asm/system.h>
@@ -72,20 +72,6 @@ EXPORT_SYMBOL(__debugger_dabr_match);
EXPORT_SYMBOL(__debugger_fault_handler);
#endif
-ATOMIC_NOTIFIER_HEAD(powerpc_die_chain);
-
-int register_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&powerpc_die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier);
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&powerpc_die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier);
-
/*
* Trap & Exception support
*/
Index: linux-2.6/arch/powerpc/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/powerpc/mm/fault.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/powerpc/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/highmem.h>
#include <linux/module.h>
#include <linux/kprobes.h>
+#include <linux/kdebug.h>
#include <asm/page.h>
#include <asm/pgtable.h>
@@ -36,7 +37,6 @@
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/tlbflush.h>
-#include <asm/kdebug.h>
#include <asm/siginfo.h>
#ifdef CONFIG_KPROBES
Index: linux-2.6/arch/s390/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/s390/kernel/kprobes.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/s390/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -24,8 +24,8 @@
#include <linux/ptrace.h>
#include <linux/preempt.h>
#include <linux/stop_machine.h>
+#include <linux/kdebug.h>
#include <asm/cacheflush.h>
-#include <asm/kdebug.h>
#include <asm/sections.h>
#include <asm/uaccess.h>
#include <linux/module.h>
Index: linux-2.6/arch/s390/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/s390/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/s390/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -30,6 +30,7 @@
#include <linux/kallsyms.h>
#include <linux/reboot.h>
#include <linux/kprobes.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/uaccess.h>
@@ -40,7 +41,6 @@
#include <asm/s390_ext.h>
#include <asm/lowcore.h>
#include <asm/debug.h>
-#include <asm/kdebug.h>
/* Called from entry.S only */
extern void handle_per_exception(struct pt_regs *regs);
@@ -70,20 +70,6 @@ static int kstack_depth_to_print = 12;
static int kstack_depth_to_print = 20;
#endif /* CONFIG_64BIT */
-ATOMIC_NOTIFIER_HEAD(s390die_chain);
-
-int register_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&s390die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier);
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&s390die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier);
-
/*
* For show_trace we have tree different stack to consider:
* - the panic stack which is used if the kernel stack has overflown
Index: linux-2.6/arch/s390/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/s390/mm/fault.c 2007-03-23 18:30:21.000000000 +0100
+++ linux-2.6/arch/s390/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -26,11 +26,11 @@
#include <linux/module.h>
#include <linux/hardirq.h>
#include <linux/kprobes.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
-#include <asm/kdebug.h>
#include <asm/s390_ext.h>
#ifndef CONFIG_64BIT
Index: linux-2.6/arch/sparc/kernel/head.S
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/head.S 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc/kernel/head.S 2007-03-23 18:35:41.000000000 +0100
@@ -19,7 +19,7 @@
#include <asm/ptrace.h>
#include <asm/psr.h>
#include <asm/page.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/winmacro.h>
#include <asm/thread_info.h> /* TI_UWINMASK */
#include <asm/errno.h>
Index: linux-2.6/arch/sparc/kernel/setup.c
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/setup.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc/kernel/setup.c 2007-03-23 18:35:41.000000000 +0100
@@ -31,6 +31,7 @@
#include <linux/spinlock.h>
#include <linux/root_dev.h>
#include <linux/cpu.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/io.h>
@@ -40,7 +41,6 @@
#include <asm/pgtable.h>
#include <asm/traps.h>
#include <asm/vaddrs.h>
-#include <asm/kdebug.h>
#include <asm/mbus.h>
#include <asm/idprom.h>
#include <asm/machines.h>
Index: linux-2.6/arch/sparc/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc/kernel/traps.c 2007-03-23 18:35:41.000000000 +0100
@@ -15,6 +15,7 @@
#include <linux/signal.h>
#include <linux/smp.h>
#include <linux/smp_lock.h>
+#include <linux/kdebug.h>
#include <asm/delay.h>
#include <asm/system.h>
@@ -22,7 +23,6 @@
#include <asm/oplib.h>
#include <asm/page.h>
#include <asm/pgtable.h>
-#include <asm/kdebug.h>
#include <asm/unistd.h>
#include <asm/traps.h>
Index: linux-2.6/arch/sparc/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/sparc/mm/fault.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -21,6 +21,7 @@
#include <linux/smp_lock.h>
#include <linux/interrupt.h>
#include <linux/module.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/page.h>
@@ -30,7 +31,6 @@
#include <asm/oplib.h>
#include <asm/smp.h>
#include <asm/traps.h>
-#include <asm/kdebug.h>
#include <asm/uaccess.h>
extern int prom_node_root;
Index: linux-2.6/arch/sparc/mm/srmmu.c
===================================================================
--- linux-2.6.orig/arch/sparc/mm/srmmu.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc/mm/srmmu.c 2007-03-23 18:35:41.000000000 +0100
@@ -18,13 +18,13 @@
#include <linux/bootmem.h>
#include <linux/fs.h>
#include <linux/seq_file.h>
+#include <linux/kdebug.h>
#include <asm/bitext.h>
#include <asm/page.h>
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
#include <asm/io.h>
-#include <asm/kdebug.h>
#include <asm/vaddrs.h>
#include <asm/traps.h>
#include <asm/smp.h>
Index: linux-2.6/arch/sparc64/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/sparc64/kernel/kprobes.c 2007-03-23
18:30:21.000000000 +0100
+++ linux-2.6/arch/sparc64/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -6,7 +6,7 @@
#include <linux/kernel.h>
#include <linux/kprobes.h>
#include <linux/module.h>
-#include <asm/kdebug.h>
+#include <linux/kdebug.h>
#include <asm/signal.h>
#include <asm/cacheflush.h>
#include <asm/uaccess.h>
Index: linux-2.6/arch/sparc64/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/sparc64/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc64/kernel/traps.c 2007-03-23 18:35:41.000000000
+0100
@@ -18,6 +18,7 @@
#include <linux/smp_lock.h>
#include <linux/mm.h>
#include <linux/init.h>
+#include <linux/kdebug.h>
#include <asm/delay.h>
#include <asm/system.h>
@@ -36,26 +37,12 @@
#include <asm/psrcompat.h>
#include <asm/processor.h>
#include <asm/timer.h>
-#include <asm/kdebug.h>
#include <asm/head.h>
#ifdef CONFIG_KMOD
#include <linux/kmod.h>
#endif
#include <asm/prom.h>
-ATOMIC_NOTIFIER_HEAD(sparc64die_chain);
-
-int register_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&sparc64die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier);
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&sparc64die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier);
/* When an irrecoverable trap occurs at tl > 0, the trap entry
* code logs the trap state registers at every level in the trap
Index: linux-2.6/arch/sparc64/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/sparc64/mm/fault.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/sparc64/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/interrupt.h>
#include <linux/kprobes.h>
#include <linux/kallsyms.h>
+#include <linux/kdebug.h>
#include <asm/page.h>
#include <asm/pgtable.h>
@@ -29,7 +30,6 @@
#include <asm/asi.h>
#include <asm/lsu.h>
#include <asm/sections.h>
-#include <asm/kdebug.h>
#include <asm/mmu_context.h>
#ifdef CONFIG_KPROBES
Index: linux-2.6/arch/x86_64/kernel/crash.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/crash.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/crash.c 2007-03-23 18:35:41.000000000
+0100
@@ -17,13 +17,13 @@
#include <linux/delay.h>
#include <linux/elf.h>
#include <linux/elfcore.h>
+#include <linux/kdebug.h>
#include <asm/processor.h>
#include <asm/hardirq.h>
#include <asm/nmi.h>
#include <asm/hw_irq.h>
#include <asm/mach_apic.h>
-#include <asm/kdebug.h>
/* This keeps a track of which one is crashing cpu. */
static int crashing_cpu;
Index: linux-2.6/arch/x86_64/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/kprobes.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/kprobes.c 2007-03-23 18:35:41.000000000
+0100
@@ -37,10 +37,10 @@
#include <linux/slab.h>
#include <linux/preempt.h>
#include <linux/module.h>
+#include <linux/kdebug.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
-#include <asm/kdebug.h>
#include <asm/uaccess.h>
void jprobe_return_end(void);
Index: linux-2.6/arch/x86_64/kernel/mce.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/mce.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/mce.c 2007-03-23 18:35:41.000000000 +0100
@@ -20,10 +20,10 @@
#include <linux/percpu.h>
#include <linux/ctype.h>
#include <linux/kmod.h>
+#include <linux/kdebug.h>
#include <asm/processor.h>
#include <asm/msr.h>
#include <asm/mce.h>
-#include <asm/kdebug.h>
#include <asm/uaccess.h>
#include <asm/smp.h>
Index: linux-2.6/arch/x86_64/kernel/nmi.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/nmi.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/nmi.c 2007-03-23 18:35:41.000000000 +0100
@@ -21,11 +21,11 @@
#include <linux/sysctl.h>
#include <linux/kprobes.h>
#include <linux/cpumask.h>
+#include <linux/kdebug.h>
#include <asm/smp.h>
#include <asm/nmi.h>
#include <asm/proto.h>
-#include <asm/kdebug.h>
#include <asm/mce.h>
#include <asm/intel_arch_perfmon.h>
Index: linux-2.6/arch/x86_64/kernel/pci-gart.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/pci-gart.c 2007-03-23
18:30:21.000000000 +0100
+++ linux-2.6/arch/x86_64/kernel/pci-gart.c 2007-03-23 18:35:41.000000000
+0100
@@ -22,13 +22,13 @@
#include <linux/topology.h>
#include <linux/interrupt.h>
#include <linux/bitops.h>
+#include <linux/kdebug.h>
#include <asm/atomic.h>
#include <asm/io.h>
#include <asm/mtrr.h>
#include <asm/pgtable.h>
#include <asm/proto.h>
#include <asm/cacheflush.h>
-#include <asm/kdebug.h>
#include <asm/swiotlb.h>
#include <asm/dma.h>
#include <asm/k8.h>
Index: linux-2.6/arch/x86_64/kernel/process.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/process.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/process.c 2007-03-23 18:35:41.000000000
+0100
@@ -36,6 +36,7 @@
#include <linux/random.h>
#include <linux/notifier.h>
#include <linux/kprobes.h>
+#include <linux/kdebug.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
@@ -46,7 +47,6 @@
#include <asm/mmu_context.h>
#include <asm/pda.h>
#include <asm/prctl.h>
-#include <asm/kdebug.h>
#include <asm/desc.h>
#include <asm/proto.h>
#include <asm/ia32.h>
Index: linux-2.6/arch/x86_64/kernel/reboot.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/reboot.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/reboot.c 2007-03-23 18:35:41.000000000
+0100
@@ -7,8 +7,8 @@
#include <linux/ctype.h>
#include <linux/string.h>
#include <linux/pm.h>
+#include <linux/kdebug.h>
#include <asm/io.h>
-#include <asm/kdebug.h>
#include <asm/delay.h>
#include <asm/hw_irq.h>
#include <asm/system.h>
Index: linux-2.6/arch/x86_64/kernel/smpboot.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/smpboot.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/smpboot.c 2007-03-23 18:35:41.000000000
+0100
@@ -49,11 +49,11 @@
#include <linux/delay.h>
#include <linux/mc146818rtc.h>
#include <linux/smp.h>
+#include <linux/kdebug.h>
#include <asm/mtrr.h>
#include <asm/pgalloc.h>
#include <asm/desc.h>
-#include <asm/kdebug.h>
#include <asm/tlbflush.h>
#include <asm/proto.h>
#include <asm/nmi.h>
Index: linux-2.6/arch/x86_64/kernel/traps.c
===================================================================
--- linux-2.6.orig/arch/x86_64/kernel/traps.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/kernel/traps.c 2007-03-23 18:35:41.000000000
+0100
@@ -32,6 +32,7 @@
#include <linux/unwind.h>
#include <linux/uaccess.h>
#include <linux/bug.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/io.h>
@@ -39,7 +40,6 @@
#include <asm/debugreg.h>
#include <asm/desc.h>
#include <asm/i387.h>
-#include <asm/kdebug.h>
#include <asm/processor.h>
#include <asm/unwind.h>
#include <asm/smp.h>
@@ -71,22 +71,6 @@ asmlinkage void alignment_check(void);
asmlinkage void machine_check(void);
asmlinkage void spurious_interrupt_bug(void);
-ATOMIC_NOTIFIER_HEAD(die_chain);
-EXPORT_SYMBOL(die_chain);
-
-int register_die_notifier(struct notifier_block *nb)
-{
- vmalloc_sync_all();
- return atomic_notifier_chain_register(&die_chain, nb);
-}
-EXPORT_SYMBOL(register_die_notifier); /* used modular by kdb */
-
-int unregister_die_notifier(struct notifier_block *nb)
-{
- return atomic_notifier_chain_unregister(&die_chain, nb);
-}
-EXPORT_SYMBOL(unregister_die_notifier); /* used modular by kdb */
-
static inline void conditional_sti(struct pt_regs *regs)
{
if (regs->eflags & X86_EFLAGS_IF)
Index: linux-2.6/arch/x86_64/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/x86_64/mm/fault.c 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/arch/x86_64/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -24,13 +24,13 @@
#include <linux/module.h>
#include <linux/kprobes.h>
#include <linux/uaccess.h>
+#include <linux/kdebug.h>
#include <asm/system.h>
#include <asm/pgalloc.h>
#include <asm/smp.h>
#include <asm/tlbflush.h>
#include <asm/proto.h>
-#include <asm/kdebug.h>
#include <asm-generic/sections.h>
/* Page fault error code bits */
Index: linux-2.6/include/asm-alpha/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-alpha/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-arm/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-arm/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-arm26/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-arm26/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-avr32/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-avr32/kdebug.h 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/include/asm-avr32/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -3,19 +3,6 @@
#include <linux/notifier.h>
-struct pt_regs;
-
-struct die_args {
- struct pt_regs *regs;
- int trapnr;
-};
-
-int register_die_notifier(struct notifier_block *nb);
-int unregister_die_notifier(struct notifier_block *nb);
-int register_page_fault_notifier(struct notifier_block *nb);
-int unregister_page_fault_notifier(struct notifier_block *nb);
-extern struct atomic_notifier_head avr32_die_chain;
-
/* Grossly misnamed. */
enum die_val {
DIE_FAULT,
@@ -24,15 +11,7 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val, struct pt_regs *regs,
- int trap, int sig)
-{
- struct die_args args = {
- .regs = regs,
- .trapnr = trap,
- };
-
- return atomic_notifier_call_chain(&avr32_die_chain, val, &args);
-}
+int register_page_fault_notifier(struct notifier_block *nb);
+int unregister_page_fault_notifier(struct notifier_block *nb);
#endif /* __ASM_AVR32_KDEBUG_H */
Index: linux-2.6/include/asm-cris/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-cris/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-frv/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-frv/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-h8300/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-h8300/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-i386/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-i386/kdebug.h 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/include/asm-i386/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -9,19 +9,8 @@
struct pt_regs;
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
-extern struct atomic_notifier_head i386die_chain;
/* Grossly misnamed. */
@@ -41,17 +30,4 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val, const char *str,
- struct pt_regs *regs, long err, int trap, int sig)
-{
- struct die_args args = {
- .regs = regs,
- .str = str,
- .err = err,
- .trapnr = trap,
- .signr = sig
- };
- return atomic_notifier_call_chain(&i386die_chain, val, &args);
-}
-
#endif
Index: linux-2.6/include/asm-ia64/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-ia64/kdebug.h 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/include/asm-ia64/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -28,21 +28,8 @@
*/
#include <linux/notifier.h>
-struct pt_regs;
-
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
-extern struct atomic_notifier_head ia64die_chain;
enum die_val {
DIE_BREAK = 1,
@@ -74,18 +61,4 @@ enum die_val {
DIE_KDUMP_LEAVE,
};
-static inline int notify_die(enum die_val val, char *str, struct pt_regs *regs,
- long err, int trap, int sig)
-{
- struct die_args args = {
- .regs = regs,
- .str = str,
- .err = err,
- .trapnr = trap,
- .signr = sig
- };
-
- return atomic_notifier_call_chain(&ia64die_chain, val, &args);
-}
-
#endif
Index: linux-2.6/include/asm-m32r/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-m32r/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-m68k/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-m68k/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-m68knommu/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-m68knommu/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-mips/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-mips/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-parisc/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-parisc/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-powerpc/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-powerpc/kdebug.h 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/include/asm-powerpc/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -6,18 +6,6 @@
#include <linux/notifier.h>
-struct pt_regs;
-
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
extern struct atomic_notifier_head powerpc_die_chain;
@@ -32,11 +20,5 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val,char *str,struct pt_regs
*regs,long err,int trap, int sig)
-{
- struct die_args args = { .regs=regs, .str=str, .err=err,
.trapnr=trap,.signr=sig };
- return atomic_notifier_call_chain(&powerpc_die_chain, val, &args);
-}
-
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_KDEBUG_H */
Index: linux-2.6/include/asm-ppc/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-ppc/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-s390/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-s390/kdebug.h 2007-03-23 18:30:21.000000000
+0100
+++ linux-2.6/include/asm-s390/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -8,23 +8,8 @@
struct pt_regs;
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-/* Note - you should never unregister because that can race with NMIs.
- * If you really want to do it first unregister - then synchronize_sched
- * - then free.
- */
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
-extern struct atomic_notifier_head s390die_chain;
enum die_val {
DIE_OOPS = 1,
@@ -42,19 +27,6 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val, const char *str,
- struct pt_regs *regs, long err, int trap, int sig)
-{
- struct die_args args = {
- .regs = regs,
- .str = str,
- .err = err,
- .trapnr = trap,
- .signr = sig
- };
- return atomic_notifier_call_chain(&s390die_chain, val, &args);
-}
-
extern void die(const char *, struct pt_regs *, long);
#endif
Index: linux-2.6/include/asm-sh/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-sh/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-sh64/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-sh64/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-sparc/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-sparc/kdebug.h 2007-03-23 18:30:22.000000000
+0100
+++ linux-2.6/include/asm-sparc/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -66,4 +66,8 @@ static inline void sp_enter_debugger(voi
#define KDEBUG_DUNNO2_OFF 0x8
#define KDEBUG_TEACH_OFF 0xc
+enum die_val {
+ DIE_UNUSED,
+};
+
#endif /* !(_SPARC_KDEBUG_H) */
Index: linux-2.6/include/asm-sparc64/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-sparc64/kdebug.h 2007-03-23 18:30:22.000000000
+0100
+++ linux-2.6/include/asm-sparc64/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -7,19 +7,8 @@
struct pt_regs;
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
-extern struct atomic_notifier_head sparc64die_chain;
extern void bad_trap(struct pt_regs *, long);
@@ -36,16 +25,4 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val,char *str, struct pt_regs *regs,
- long err, int trap, int sig)
-{
- struct die_args args = { .regs = regs,
- .str = str,
- .err = err,
- .trapnr = trap,
- .signr = sig };
-
- return atomic_notifier_call_chain(&sparc64die_chain, val, &args);
-}
-
#endif
Index: linux-2.6/include/asm-um/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-um/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-v850/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-v850/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/asm-x86_64/kdebug.h
===================================================================
--- linux-2.6.orig/include/asm-x86_64/kdebug.h 2007-03-23 18:30:22.000000000
+0100
+++ linux-2.6/include/asm-x86_64/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -5,19 +5,8 @@
struct pt_regs;
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-extern int register_die_notifier(struct notifier_block *);
-extern int unregister_die_notifier(struct notifier_block *);
extern int register_page_fault_notifier(struct notifier_block *);
extern int unregister_page_fault_notifier(struct notifier_block *);
-extern struct atomic_notifier_head die_chain;
/* Grossly misnamed. */
enum die_val {
@@ -36,19 +25,6 @@ enum die_val {
DIE_PAGE_FAULT,
};
-static inline int notify_die(enum die_val val, const char *str,
- struct pt_regs *regs, long err, int trap, int sig)
-{
- struct die_args args = {
- .regs = regs,
- .str = str,
- .err = err,
- .trapnr = trap,
- .signr = sig
- };
- return atomic_notifier_call_chain(&die_chain, val, &args);
-}
-
extern void printk_address(unsigned long address);
extern void die(const char *,struct pt_regs *,long);
extern void __die(const char *,struct pt_regs *,long);
Index: linux-2.6/include/asm-xtensa/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-xtensa/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1 @@
+#include <asm-generic/kdebug.h>
Index: linux-2.6/include/linux/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/linux/kdebug.h 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1,20 @@
+#ifndef _LINUX_KDEBUG_H
+#define _LINUX_KDEBUG_H
+
+#include <asm/kdebug.h>
+
+struct die_args {
+ struct pt_regs *regs;
+ const char *str;
+ long err;
+ int trapnr;
+ int signr;
+};
+
+int register_die_notifier(struct notifier_block *nb);
+int unregister_die_notifier(struct notifier_block *nb);
+
+int notify_die(enum die_val val, const char *str,
+ struct pt_regs *regs, long err, int trap, int sig);
+
+#endif /* _LINUX_KDEBUG_H */
Index: linux-2.6/kernel/Makefile
===================================================================
--- linux-2.6.orig/kernel/Makefile 2007-03-23 18:30:22.000000000 +0100
+++ linux-2.6/kernel/Makefile 2007-03-23 18:35:41.000000000 +0100
@@ -8,7 +8,7 @@ obj-y = sched.o fork.o exec_domain.o
signal.o sys.o kmod.o workqueue.o pid.o \
rcupdate.o extable.o params.o posix-timers.o \
kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
- hrtimer.o rwsem.o latency.o nsproxy.o srcu.o
+ hrtimer.o rwsem.o latency.o nsproxy.o srcu.o die_notifier.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
obj-y += time/
Index: linux-2.6/kernel/die_notifier.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/kernel/die_notifier.c 2007-03-23 18:35:41.000000000 +0100
@@ -0,0 +1,36 @@
+
+#include <linux/module.h>
+#include <linux/notifier.h>
+#include <linux/kdebug.h>
+
+
+static ATOMIC_NOTIFIER_HEAD(die_chain);
+
+int notify_die(enum die_val val, const char *str,
+ struct pt_regs *regs, long err, int trap, int sig)
+{
+ struct die_args args = {
+ .regs = regs,
+ .str = str,
+ .err = err,
+ .trapnr = trap,
+ .signr = sig,
+
+ };
+
+ return atomic_notifier_call_chain(&die_chain, val, &args);
+}
+
+int register_die_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_register(&die_chain, nb);
+}
+EXPORT_SYMBOL_GPL(register_die_notifier);
+
+int unregister_die_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_unregister(&die_chain, nb);
+}
+EXPORT_SYMBOL_GPL(unregister_die_notifier);
+
+
Index: linux-2.6/kernel/kprobes.c
===================================================================
--- linux-2.6.orig/kernel/kprobes.c 2007-03-23 18:30:22.000000000 +0100
+++ linux-2.6/kernel/kprobes.c 2007-03-23 18:35:41.000000000 +0100
@@ -41,10 +41,10 @@
#include <linux/freezer.h>
#include <linux/seq_file.h>
#include <linux/debugfs.h>
+#include <linux/kdebug.h>
#include <asm-generic/sections.h>
#include <asm/cacheflush.h>
#include <asm/errno.h>
-#include <asm/kdebug.h>
#define KPROBE_HASH_BITS 6
#define KPROBE_TABLE_SIZE (1 << KPROBE_HASH_BITS)
Index: linux-2.6/include/asm-generic/kdebug.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/include/asm-generic/kdebug.h 2007-03-23 18:35:41.000000000
+0100
@@ -0,0 +1,8 @@
+#ifndef _ASM_GENERIC_KDEBUG_H
+#define _ASM_GENERIC_KDEBUG_H
+
+enum die_val {
+ DIE_UNUSED,
+};
+
+#endif /* _ASM_GENERIC_KDEBUG_H */
Index: linux-2.6/arch/arm/mm/fault.c
===================================================================
--- linux-2.6.orig/arch/arm/mm/fault.c 2007-03-23 18:30:20.000000000 +0100
+++ linux-2.6/arch/arm/mm/fault.c 2007-03-23 18:35:41.000000000 +0100
@@ -454,7 +454,7 @@ do_DataAbort(unsigned long addr, unsigne
info.si_errno = 0;
info.si_code = inf->code;
info.si_addr = (void __user *)addr;
- notify_die("", regs, &info, fsr, 0);
+ arm_notify_die("", regs, &info, fsr, 0);
}
asmlinkage void
Index: linux-2.6/include/asm-arm/system.h
===================================================================
--- linux-2.6.orig/include/asm-arm/system.h 2007-03-23 18:35:48.000000000
+0100
+++ linux-2.6/include/asm-arm/system.h 2007-03-23 18:35:54.000000000 +0100
@@ -90,7 +90,7 @@ void die(const char *msg, struct pt_regs
__attribute__((noreturn));
struct siginfo;
-void notify_die(const char *str, struct pt_regs *regs, struct siginfo *info,
+void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo
*info,
unsigned long err, unsigned long trap);
void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
-
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html