diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-22 20:26:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-22 20:26:18 -0400 |
commit | cdb7532f7be35c3675b1aed54d10e378014618b6 (patch) | |
tree | 925df597b70c4a1de629fec68f9e4ebd3fd9e803 /arch/sh/kernel/traps.c | |
parent | 7992018d979460af59fbae8a48f9641305aea438 (diff) | |
parent | 31d106c68b1af88835a474556052d6efbfec99c5 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6:
sh: Fix dreamcast build for IRQ changes.
sh: Fix clock multiplier on SH7722.
sh: Wire up kdump crash kernel exec in die().
sh: sr.bl toggling around idle sleep.
sh: disable genrtc support.
fs: Kill sh dependency for binfmt_flat.
sh: Disable psw support for R7785RP.
sh: Fix page size alignment in __copy_user_page().
sh: Fix up various compile warnings for SE boards.
sh: Wire up signalfd/timerfd/eventfd syscalls.
sh: revert addition of page fault notifiers
spelling fixes: arch/sh/
input: hp680_ts compile fixes.
sh: landisk: Header cleanups.
sh: landisk: rtc-rs5c313 support.
sh: Kill off pmb slab cache destructor.
sh: Fix up psw build rules for r7780rp.
sh: Shut up compiler warnings in __do_page_fault().
Diffstat (limited to 'arch/sh/kernel/traps.c')
-rw-r--r-- | arch/sh/kernel/traps.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 3a197649cd83..5b75cb6f8f9b 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/bug.h> | 21 | #include <linux/bug.h> |
22 | #include <linux/debug_locks.h> | 22 | #include <linux/debug_locks.h> |
23 | #include <linux/kdebug.h> | 23 | #include <linux/kdebug.h> |
24 | #include <linux/kexec.h> | ||
24 | #include <linux/limits.h> | 25 | #include <linux/limits.h> |
25 | #include <asm/system.h> | 26 | #include <asm/system.h> |
26 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
@@ -101,6 +102,16 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
101 | 102 | ||
102 | bust_spinlocks(0); | 103 | bust_spinlocks(0); |
103 | spin_unlock_irq(&die_lock); | 104 | spin_unlock_irq(&die_lock); |
105 | |||
106 | if (kexec_should_crash(current)) | ||
107 | crash_kexec(regs); | ||
108 | |||
109 | if (in_interrupt()) | ||
110 | panic("Fatal exception in interrupt"); | ||
111 | |||
112 | if (panic_on_oops) | ||
113 | panic("Fatal exception"); | ||
114 | |||
104 | do_exit(SIGSEGV); | 115 | do_exit(SIGSEGV); |
105 | } | 116 | } |
106 | 117 | ||
@@ -513,7 +524,7 @@ static int handle_unaligned_access(u16 instruction, struct pt_regs *regs) | |||
513 | * misaligned data access | 524 | * misaligned data access |
514 | * access to >= 0x80000000 is user mode | 525 | * access to >= 0x80000000 is user mode |
515 | * Unfortuntaly we can't distinguish between instruction address error | 526 | * Unfortuntaly we can't distinguish between instruction address error |
516 | * and data address errors caused by read acceses. | 527 | * and data address errors caused by read accesses. |
517 | */ | 528 | */ |
518 | asmlinkage void do_address_error(struct pt_regs *regs, | 529 | asmlinkage void do_address_error(struct pt_regs *regs, |
519 | unsigned long writeaccess, | 530 | unsigned long writeaccess, |