diff options
author | Daniel Jacobowitz <dan@debian.org> | 2005-11-26 22:34:41 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-12-01 06:05:14 -0500 |
commit | 56ebd51bae72c2e47c83f6eacf258479d5658ec8 (patch) | |
tree | eb39e5ee383815c0185b910523d5470088f93494 /arch | |
parent | b6c3539bdd6d766cffea76698c85ebb92bf3fb12 (diff) |
[MIPS] Generate SIGILL again
The rdhwr emulation accidentally swallowed the SIGILL from most other
illegal instructions. Make sure to return -EFAULT by default.
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/traps.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 6f3ff9690686..7058893d5ad2 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -534,13 +534,14 @@ static inline int simulate_rdhwr(struct pt_regs *regs) | |||
534 | switch (rd) { | 534 | switch (rd) { |
535 | case 29: | 535 | case 29: |
536 | regs->regs[rt] = ti->tp_value; | 536 | regs->regs[rt] = ti->tp_value; |
537 | break; | 537 | return 0; |
538 | default: | 538 | default: |
539 | return -EFAULT; | 539 | return -EFAULT; |
540 | } | 540 | } |
541 | } | 541 | } |
542 | 542 | ||
543 | return 0; | 543 | /* Not ours. */ |
544 | return -EFAULT; | ||
544 | } | 545 | } |
545 | 546 | ||
546 | asmlinkage void do_ov(struct pt_regs *regs) | 547 | asmlinkage void do_ov(struct pt_regs *regs) |