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/mips/kernel/traps.c | |
| 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/mips/kernel/traps.c')
| -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) |
