.. | .. |
---|
18 | 18 | #include <linux/smp.h> |
---|
19 | 19 | #include <linux/kdebug.h> |
---|
20 | 20 | #include <linux/export.h> |
---|
| 21 | +#include <linux/pgtable.h> |
---|
21 | 22 | |
---|
22 | 23 | #include <asm/delay.h> |
---|
23 | 24 | #include <asm/ptrace.h> |
---|
24 | 25 | #include <asm/oplib.h> |
---|
25 | 26 | #include <asm/page.h> |
---|
26 | | -#include <asm/pgtable.h> |
---|
27 | 27 | #include <asm/unistd.h> |
---|
28 | 28 | #include <asm/traps.h> |
---|
29 | 29 | |
---|
.. | .. |
---|
86 | 86 | } |
---|
87 | 87 | printk("Instruction DUMP:"); |
---|
88 | 88 | instruction_dump ((unsigned long *) regs->pc); |
---|
89 | | - if(regs->psr & PSR_PS) |
---|
90 | | - do_exit(SIGKILL); |
---|
91 | | - do_exit(SIGSEGV); |
---|
| 89 | + make_task_dead((regs->psr & PSR_PS) ? SIGKILL : SIGSEGV); |
---|
92 | 90 | } |
---|
93 | 91 | |
---|
94 | 92 | void do_hw_interrupt(struct pt_regs *regs, unsigned long type) |
---|
.. | .. |
---|
103 | 101 | die_if_kernel("Kernel bad trap", regs); |
---|
104 | 102 | |
---|
105 | 103 | force_sig_fault(SIGILL, ILL_ILLTRP, |
---|
106 | | - (void __user *)regs->pc, type - 0x80, current); |
---|
| 104 | + (void __user *)regs->pc, type - 0x80); |
---|
107 | 105 | } |
---|
108 | 106 | |
---|
109 | 107 | void do_illegal_instruction(struct pt_regs *regs, unsigned long pc, unsigned long npc, |
---|
.. | .. |
---|
327 | 325 | printk("Register Access Exception at PC %08lx NPC %08lx PSR %08lx\n", |
---|
328 | 326 | pc, npc, psr); |
---|
329 | 327 | #endif |
---|
330 | | - force_sig_fault(SIGBUS, BUS_OBJERR, (void __user *)pc, 0, current); |
---|
| 328 | + force_sig_fault(SIGBUS, BUS_OBJERR, (void __user *)pc, 0); |
---|
331 | 329 | } |
---|
332 | 330 | |
---|
333 | 331 | void handle_cp_disabled(struct pt_regs *regs, unsigned long pc, unsigned long npc, |
---|