diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 22:08:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 22:08:03 -0400 |
commit | dc113c1f1d4b47af1b1ca701c5a39e24d296c2ac (patch) | |
tree | 0bb5ce21bcd41a9443708567edbdca80d9a72397 /arch/m68k/mm/fault.c | |
parent | 63a93699c6a58795b854ff573542a08367684dae (diff) | |
parent | 059718d572e8ad388313b863aff717623bb2552f (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.c | 16 |
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 | ||
20 | extern void die_if_kernel(char *, struct pt_regs *, long); | 20 | extern void die_if_kernel(char *, struct pt_regs *, long); |
21 | extern const int frame_extra_sizes[]; /* in m68k/kernel/signal.c */ | ||
22 | 21 | ||
23 | int send_fault_sig(struct pt_regs *regs) | 22 | int 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, |