diff options
author | Christoph Hellwig <hch@lst.de> | 2007-05-08 03:27:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:04 -0400 |
commit | 1eeb66a1bb973534dc3d064920a5ca683823372e (patch) | |
tree | 19c22d611e6adefb352dbc107b859e4d13ba38c1 /arch/x86_64/kernel | |
parent | e3869792990f708c97be5877499cada70d469bd3 (diff) |
move die notifier handling to common code
This patch moves the die notifier handling to common code. Previous
various architectures had exactly the same code for it. Note that the new
code is compiled unconditionally, this should be understood as an appel to
the other architecture maintainer to implement support for it aswell (aka
sprinkling a notify_die or two in the proper place)
arm had a notifiy_die that did something totally different, I renamed it to
arm_notify_die as part of the patch and made it static to the file it's
declared and used at. avr32 used to pass slightly less information through
this interface and I brought it into line with the other architectures.
[akpm@linux-foundation.org: build fix]
[akpm@linux-foundation.org: fix vmalloc_sync_all bustage]
[bryan.wu@analog.com: fix vmalloc_sync_all in nommu]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: <linux-arch@vger.kernel.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86_64/kernel')
-rw-r--r-- | arch/x86_64/kernel/crash.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/kprobes.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/mce.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/nmi.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/pci-gart.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/process.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/reboot.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/x86_64/kernel/traps.c | 18 |
9 files changed, 9 insertions, 25 deletions
diff --git a/arch/x86_64/kernel/crash.c b/arch/x86_64/kernel/crash.c index 95a7a2c13131..13432a1ae904 100644 --- a/arch/x86_64/kernel/crash.c +++ b/arch/x86_64/kernel/crash.c | |||
@@ -17,13 +17,13 @@ | |||
17 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
18 | #include <linux/elf.h> | 18 | #include <linux/elf.h> |
19 | #include <linux/elfcore.h> | 19 | #include <linux/elfcore.h> |
20 | #include <linux/kdebug.h> | ||
20 | 21 | ||
21 | #include <asm/processor.h> | 22 | #include <asm/processor.h> |
22 | #include <asm/hardirq.h> | 23 | #include <asm/hardirq.h> |
23 | #include <asm/nmi.h> | 24 | #include <asm/nmi.h> |
24 | #include <asm/hw_irq.h> | 25 | #include <asm/hw_irq.h> |
25 | #include <asm/mach_apic.h> | 26 | #include <asm/mach_apic.h> |
26 | #include <asm/kdebug.h> | ||
27 | 27 | ||
28 | /* This keeps a track of which one is crashing cpu. */ | 28 | /* This keeps a track of which one is crashing cpu. */ |
29 | static int crashing_cpu; | 29 | static int crashing_cpu; |
diff --git a/arch/x86_64/kernel/kprobes.c b/arch/x86_64/kernel/kprobes.c index 209c8c0bec71..90e7008cd899 100644 --- a/arch/x86_64/kernel/kprobes.c +++ b/arch/x86_64/kernel/kprobes.c | |||
@@ -37,10 +37,10 @@ | |||
37 | #include <linux/slab.h> | 37 | #include <linux/slab.h> |
38 | #include <linux/preempt.h> | 38 | #include <linux/preempt.h> |
39 | #include <linux/module.h> | 39 | #include <linux/module.h> |
40 | #include <linux/kdebug.h> | ||
40 | 41 | ||
41 | #include <asm/cacheflush.h> | 42 | #include <asm/cacheflush.h> |
42 | #include <asm/pgtable.h> | 43 | #include <asm/pgtable.h> |
43 | #include <asm/kdebug.h> | ||
44 | #include <asm/uaccess.h> | 44 | #include <asm/uaccess.h> |
45 | 45 | ||
46 | void jprobe_return_end(void); | 46 | void jprobe_return_end(void); |
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c index fa2672682477..442169640e45 100644 --- a/arch/x86_64/kernel/mce.c +++ b/arch/x86_64/kernel/mce.c | |||
@@ -20,10 +20,10 @@ | |||
20 | #include <linux/percpu.h> | 20 | #include <linux/percpu.h> |
21 | #include <linux/ctype.h> | 21 | #include <linux/ctype.h> |
22 | #include <linux/kmod.h> | 22 | #include <linux/kmod.h> |
23 | #include <linux/kdebug.h> | ||
23 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
24 | #include <asm/msr.h> | 25 | #include <asm/msr.h> |
25 | #include <asm/mce.h> | 26 | #include <asm/mce.h> |
26 | #include <asm/kdebug.h> | ||
27 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
28 | #include <asm/smp.h> | 28 | #include <asm/smp.h> |
29 | 29 | ||
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index 6cd2b30e2ffc..931c64bad5e6 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
@@ -21,11 +21,11 @@ | |||
21 | #include <linux/sysctl.h> | 21 | #include <linux/sysctl.h> |
22 | #include <linux/kprobes.h> | 22 | #include <linux/kprobes.h> |
23 | #include <linux/cpumask.h> | 23 | #include <linux/cpumask.h> |
24 | #include <linux/kdebug.h> | ||
24 | 25 | ||
25 | #include <asm/smp.h> | 26 | #include <asm/smp.h> |
26 | #include <asm/nmi.h> | 27 | #include <asm/nmi.h> |
27 | #include <asm/proto.h> | 28 | #include <asm/proto.h> |
28 | #include <asm/kdebug.h> | ||
29 | #include <asm/mce.h> | 29 | #include <asm/mce.h> |
30 | 30 | ||
31 | int unknown_nmi_panic; | 31 | int unknown_nmi_panic; |
diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 0a762e10f2be..373ef66ca1dc 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c | |||
@@ -22,13 +22,13 @@ | |||
22 | #include <linux/topology.h> | 22 | #include <linux/topology.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/bitops.h> | 24 | #include <linux/bitops.h> |
25 | #include <linux/kdebug.h> | ||
25 | #include <asm/atomic.h> | 26 | #include <asm/atomic.h> |
26 | #include <asm/io.h> | 27 | #include <asm/io.h> |
27 | #include <asm/mtrr.h> | 28 | #include <asm/mtrr.h> |
28 | #include <asm/pgtable.h> | 29 | #include <asm/pgtable.h> |
29 | #include <asm/proto.h> | 30 | #include <asm/proto.h> |
30 | #include <asm/cacheflush.h> | 31 | #include <asm/cacheflush.h> |
31 | #include <asm/kdebug.h> | ||
32 | #include <asm/swiotlb.h> | 32 | #include <asm/swiotlb.h> |
33 | #include <asm/dma.h> | 33 | #include <asm/dma.h> |
34 | #include <asm/k8.h> | 34 | #include <asm/k8.h> |
diff --git a/arch/x86_64/kernel/process.c b/arch/x86_64/kernel/process.c index 4f21765078b7..5909039f37aa 100644 --- a/arch/x86_64/kernel/process.c +++ b/arch/x86_64/kernel/process.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/random.h> | 36 | #include <linux/random.h> |
37 | #include <linux/notifier.h> | 37 | #include <linux/notifier.h> |
38 | #include <linux/kprobes.h> | 38 | #include <linux/kprobes.h> |
39 | #include <linux/kdebug.h> | ||
39 | 40 | ||
40 | #include <asm/uaccess.h> | 41 | #include <asm/uaccess.h> |
41 | #include <asm/pgtable.h> | 42 | #include <asm/pgtable.h> |
@@ -46,7 +47,6 @@ | |||
46 | #include <asm/mmu_context.h> | 47 | #include <asm/mmu_context.h> |
47 | #include <asm/pda.h> | 48 | #include <asm/pda.h> |
48 | #include <asm/prctl.h> | 49 | #include <asm/prctl.h> |
49 | #include <asm/kdebug.h> | ||
50 | #include <asm/desc.h> | 50 | #include <asm/desc.h> |
51 | #include <asm/proto.h> | 51 | #include <asm/proto.h> |
52 | #include <asm/ia32.h> | 52 | #include <asm/ia32.h> |
diff --git a/arch/x86_64/kernel/reboot.c b/arch/x86_64/kernel/reboot.c index 2d6769847456..c116b54d422e 100644 --- a/arch/x86_64/kernel/reboot.c +++ b/arch/x86_64/kernel/reboot.c | |||
@@ -7,8 +7,8 @@ | |||
7 | #include <linux/ctype.h> | 7 | #include <linux/ctype.h> |
8 | #include <linux/string.h> | 8 | #include <linux/string.h> |
9 | #include <linux/pm.h> | 9 | #include <linux/pm.h> |
10 | #include <linux/kdebug.h> | ||
10 | #include <asm/io.h> | 11 | #include <asm/io.h> |
11 | #include <asm/kdebug.h> | ||
12 | #include <asm/delay.h> | 12 | #include <asm/delay.h> |
13 | #include <asm/hw_irq.h> | 13 | #include <asm/hw_irq.h> |
14 | #include <asm/system.h> | 14 | #include <asm/system.h> |
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index 4d9dacfae575..193af9922c26 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -49,11 +49,11 @@ | |||
49 | #include <linux/delay.h> | 49 | #include <linux/delay.h> |
50 | #include <linux/mc146818rtc.h> | 50 | #include <linux/mc146818rtc.h> |
51 | #include <linux/smp.h> | 51 | #include <linux/smp.h> |
52 | #include <linux/kdebug.h> | ||
52 | 53 | ||
53 | #include <asm/mtrr.h> | 54 | #include <asm/mtrr.h> |
54 | #include <asm/pgalloc.h> | 55 | #include <asm/pgalloc.h> |
55 | #include <asm/desc.h> | 56 | #include <asm/desc.h> |
56 | #include <asm/kdebug.h> | ||
57 | #include <asm/tlbflush.h> | 57 | #include <asm/tlbflush.h> |
58 | #include <asm/proto.h> | 58 | #include <asm/proto.h> |
59 | #include <asm/nmi.h> | 59 | #include <asm/nmi.h> |
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index 0484a2ceac87..8c2ac41187c1 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/unwind.h> | 32 | #include <linux/unwind.h> |
33 | #include <linux/uaccess.h> | 33 | #include <linux/uaccess.h> |
34 | #include <linux/bug.h> | 34 | #include <linux/bug.h> |
35 | #include <linux/kdebug.h> | ||
35 | 36 | ||
36 | #include <asm/system.h> | 37 | #include <asm/system.h> |
37 | #include <asm/io.h> | 38 | #include <asm/io.h> |
@@ -39,7 +40,6 @@ | |||
39 | #include <asm/debugreg.h> | 40 | #include <asm/debugreg.h> |
40 | #include <asm/desc.h> | 41 | #include <asm/desc.h> |
41 | #include <asm/i387.h> | 42 | #include <asm/i387.h> |
42 | #include <asm/kdebug.h> | ||
43 | #include <asm/processor.h> | 43 | #include <asm/processor.h> |
44 | #include <asm/unwind.h> | 44 | #include <asm/unwind.h> |
45 | #include <asm/smp.h> | 45 | #include <asm/smp.h> |
@@ -71,22 +71,6 @@ asmlinkage void alignment_check(void); | |||
71 | asmlinkage void machine_check(void); | 71 | asmlinkage void machine_check(void); |
72 | asmlinkage void spurious_interrupt_bug(void); | 72 | asmlinkage void spurious_interrupt_bug(void); |
73 | 73 | ||
74 | ATOMIC_NOTIFIER_HEAD(die_chain); | ||
75 | EXPORT_SYMBOL(die_chain); | ||
76 | |||
77 | int register_die_notifier(struct notifier_block *nb) | ||
78 | { | ||
79 | vmalloc_sync_all(); | ||
80 | return atomic_notifier_chain_register(&die_chain, nb); | ||
81 | } | ||
82 | EXPORT_SYMBOL(register_die_notifier); /* used modular by kdb */ | ||
83 | |||
84 | int unregister_die_notifier(struct notifier_block *nb) | ||
85 | { | ||
86 | return atomic_notifier_chain_unregister(&die_chain, nb); | ||
87 | } | ||
88 | EXPORT_SYMBOL(unregister_die_notifier); /* used modular by kdb */ | ||
89 | |||
90 | static inline void conditional_sti(struct pt_regs *regs) | 74 | static inline void conditional_sti(struct pt_regs *regs) |
91 | { | 75 | { |
92 | if (regs->eflags & X86_EFLAGS_IF) | 76 | if (regs->eflags & X86_EFLAGS_IF) |