aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2007-05-08 03:27:03 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:04 -0400
commit1eeb66a1bb973534dc3d064920a5ca683823372e (patch)
tree19c22d611e6adefb352dbc107b859e4d13ba38c1 /arch/x86_64
parente3869792990f708c97be5877499cada70d469bd3 (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')
-rw-r--r--arch/x86_64/kernel/crash.c2
-rw-r--r--arch/x86_64/kernel/kprobes.c2
-rw-r--r--arch/x86_64/kernel/mce.c2
-rw-r--r--arch/x86_64/kernel/nmi.c2
-rw-r--r--arch/x86_64/kernel/pci-gart.c2
-rw-r--r--arch/x86_64/kernel/process.c2
-rw-r--r--arch/x86_64/kernel/reboot.c2
-rw-r--r--arch/x86_64/kernel/smpboot.c2
-rw-r--r--arch/x86_64/kernel/traps.c18
-rw-r--r--arch/x86_64/mm/fault.c3
10 files changed, 11 insertions, 26 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. */
29static int crashing_cpu; 29static 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
46void jprobe_return_end(void); 46void 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
31int unknown_nmi_panic; 31int 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);
71asmlinkage void machine_check(void); 71asmlinkage void machine_check(void);
72asmlinkage void spurious_interrupt_bug(void); 72asmlinkage void spurious_interrupt_bug(void);
73 73
74ATOMIC_NOTIFIER_HEAD(die_chain);
75EXPORT_SYMBOL(die_chain);
76
77int register_die_notifier(struct notifier_block *nb)
78{
79 vmalloc_sync_all();
80 return atomic_notifier_chain_register(&die_chain, nb);
81}
82EXPORT_SYMBOL(register_die_notifier); /* used modular by kdb */
83
84int unregister_die_notifier(struct notifier_block *nb)
85{
86 return atomic_notifier_chain_unregister(&die_chain, nb);
87}
88EXPORT_SYMBOL(unregister_die_notifier); /* used modular by kdb */
89
90static inline void conditional_sti(struct pt_regs *regs) 74static inline void conditional_sti(struct pt_regs *regs)
91{ 75{
92 if (regs->eflags & X86_EFLAGS_IF) 76 if (regs->eflags & X86_EFLAGS_IF)
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c
index de99dba2c515..fd6ecc2cee38 100644
--- a/arch/x86_64/mm/fault.c
+++ b/arch/x86_64/mm/fault.c
@@ -21,16 +21,17 @@
21#include <linux/tty.h> 21#include <linux/tty.h>
22#include <linux/vt_kern.h> /* For unblank_screen() */ 22#include <linux/vt_kern.h> /* For unblank_screen() */
23#include <linux/compiler.h> 23#include <linux/compiler.h>
24#include <linux/vmalloc.h>
24#include <linux/module.h> 25#include <linux/module.h>
25#include <linux/kprobes.h> 26#include <linux/kprobes.h>
26#include <linux/uaccess.h> 27#include <linux/uaccess.h>
28#include <linux/kdebug.h>
27 29
28#include <asm/system.h> 30#include <asm/system.h>
29#include <asm/pgalloc.h> 31#include <asm/pgalloc.h>
30#include <asm/smp.h> 32#include <asm/smp.h>
31#include <asm/tlbflush.h> 33#include <asm/tlbflush.h>
32#include <asm/proto.h> 34#include <asm/proto.h>
33#include <asm/kdebug.h>
34#include <asm-generic/sections.h> 35#include <asm-generic/sections.h>
35 36
36/* Page fault error code bits */ 37/* Page fault error code bits */