aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/mm/fault.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-03-16 22:08:03 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-16 22:08:03 -0400
commitdc113c1f1d4b47af1b1ca701c5a39e24d296c2ac (patch)
tree0bb5ce21bcd41a9443708567edbdca80d9a72397 /arch/m68k/mm/fault.c
parent63a93699c6a58795b854ff573542a08367684dae (diff)
parent059718d572e8ad388313b863aff717623bb2552f (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k/block: amiflop - Remove superfluous amiga_chip_alloc() cast m68k/atari: ARAnyM - Add support for network access m68k/atari: ARAnyM - Add support for console access m68k/atari: ARAnyM - Add support for block access m68k/atari: Initial ARAnyM support m68k: Kconfig - Remove unneeded "default n" m68k: Makefiles - Change to new flags variables m68k/amiga: Reclaim Chip RAM for PPC exception handlers m68k: Allow all kernel traps to be handled via exception fixups m68k: Use base_trap_init() to initialize vectors m68k: Add helper function handle_kernel_fault()
Diffstat (limited to 'arch/m68k/mm/fault.c')
-rw-r--r--arch/m68k/mm/fault.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index a96394a0333d..2db6099784ba 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -18,7 +18,6 @@
18#include <asm/pgalloc.h> 18#include <asm/pgalloc.h>
19 19
20extern void die_if_kernel(char *, struct pt_regs *, long); 20extern void die_if_kernel(char *, struct pt_regs *, long);
21extern const int frame_extra_sizes[]; /* in m68k/kernel/signal.c */
22 21
23int send_fault_sig(struct pt_regs *regs) 22int send_fault_sig(struct pt_regs *regs)
24{ 23{
@@ -35,21 +34,8 @@ int send_fault_sig(struct pt_regs *regs)
35 force_sig_info(siginfo.si_signo, 34 force_sig_info(siginfo.si_signo,
36 &siginfo, current); 35 &siginfo, current);
37 } else { 36 } else {
38 const struct exception_table_entry *fixup; 37 if (handle_kernel_fault(regs))
39
40 /* Are we prepared to handle this kernel fault? */
41 if ((fixup = search_exception_tables(regs->pc))) {
42 struct pt_regs *tregs;
43 /* Create a new four word stack frame, discarding the old
44 one. */
45 regs->stkadj = frame_extra_sizes[regs->format];
46 tregs = (struct pt_regs *)((ulong)regs + regs->stkadj);
47 tregs->vector = regs->vector;
48 tregs->format = 0;
49 tregs->pc = fixup->fixup;
50 tregs->sr = regs->sr;
51 return -1; 38 return -1;
52 }
53 39
54 //if (siginfo.si_signo == SIGBUS) 40 //if (siginfo.si_signo == SIGBUS)
55 // force_sig_info(siginfo.si_signo, 41 // force_sig_info(siginfo.si_signo,