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 /include/asm-s390/kdebug.h | |
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 'include/asm-s390/kdebug.h')
-rw-r--r-- | include/asm-s390/kdebug.h | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/include/asm-s390/kdebug.h b/include/asm-s390/kdebug.h index d2d7ad276148..04418af08f85 100644 --- a/include/asm-s390/kdebug.h +++ b/include/asm-s390/kdebug.h | |||
@@ -8,21 +8,6 @@ | |||
8 | 8 | ||
9 | struct pt_regs; | 9 | struct pt_regs; |
10 | 10 | ||
11 | struct die_args { | ||
12 | struct pt_regs *regs; | ||
13 | const char *str; | ||
14 | long err; | ||
15 | int trapnr; | ||
16 | int signr; | ||
17 | }; | ||
18 | |||
19 | /* Note - you should never unregister because that can race with NMIs. | ||
20 | * If you really want to do it first unregister - then synchronize_sched | ||
21 | * - then free. | ||
22 | */ | ||
23 | extern int register_die_notifier(struct notifier_block *); | ||
24 | extern int unregister_die_notifier(struct notifier_block *); | ||
25 | |||
26 | /* | 11 | /* |
27 | * These are only here because kprobes.c wants them to implement a | 12 | * These are only here because kprobes.c wants them to implement a |
28 | * blatant layering violation. Will hopefully go away soon once all | 13 | * blatant layering violation. Will hopefully go away soon once all |
@@ -37,8 +22,6 @@ static inline int unregister_page_fault_notifier(struct notifier_block *nb) | |||
37 | return 0; | 22 | return 0; |
38 | } | 23 | } |
39 | 24 | ||
40 | extern struct atomic_notifier_head s390die_chain; | ||
41 | |||
42 | enum die_val { | 25 | enum die_val { |
43 | DIE_OOPS = 1, | 26 | DIE_OOPS = 1, |
44 | DIE_BPT, | 27 | DIE_BPT, |
@@ -54,19 +37,6 @@ enum die_val { | |||
54 | DIE_NMI_IPI, | 37 | DIE_NMI_IPI, |
55 | }; | 38 | }; |
56 | 39 | ||
57 | static inline int notify_die(enum die_val val, const char *str, | ||
58 | struct pt_regs *regs, long err, int trap, int sig) | ||
59 | { | ||
60 | struct die_args args = { | ||
61 | .regs = regs, | ||
62 | .str = str, | ||
63 | .err = err, | ||
64 | .trapnr = trap, | ||
65 | .signr = sig | ||
66 | }; | ||
67 | return atomic_notifier_call_chain(&s390die_chain, val, &args); | ||
68 | } | ||
69 | |||
70 | extern void die(const char *, struct pt_regs *, long); | 40 | extern void die(const char *, struct pt_regs *, long); |
71 | 41 | ||
72 | #endif | 42 | #endif |