diff options
| author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2007-04-12 07:02:54 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2007-04-20 09:58:37 -0400 |
| commit | ba755f8ec80fdbf2b5212622eabf7355464c6327 (patch) | |
| tree | 211f9963c94d740a629c0a72fcacdb1761506873 /arch | |
| parent | faea62346444ce5b1dba8fb5291d95b676522c42 (diff) | |
[MIPS] Fix BUG(), BUG_ON() handling
With commit 63dc68a8cf60cb110b147dab1704d990808b39e2, kernel can not
handle BUG() and BUG_ON() properly since get_user() returns false for
kernel code. Use __get_user() to skip unnecessary access_ok(). This
patch also make BRK_BUG code encoded in the TNE instruction.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/mips/kernel/traps.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 6b356f62289e..493cb29b8a42 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
| @@ -650,7 +650,7 @@ asmlinkage void do_bp(struct pt_regs *regs) | |||
| 650 | unsigned int opcode, bcode; | 650 | unsigned int opcode, bcode; |
| 651 | siginfo_t info; | 651 | siginfo_t info; |
| 652 | 652 | ||
| 653 | if (get_user(opcode, (unsigned int __user *) exception_epc(regs))) | 653 | if (__get_user(opcode, (unsigned int __user *) exception_epc(regs))) |
| 654 | goto out_sigsegv; | 654 | goto out_sigsegv; |
| 655 | 655 | ||
| 656 | /* | 656 | /* |
| @@ -700,7 +700,7 @@ asmlinkage void do_tr(struct pt_regs *regs) | |||
| 700 | unsigned int opcode, tcode = 0; | 700 | unsigned int opcode, tcode = 0; |
| 701 | siginfo_t info; | 701 | siginfo_t info; |
| 702 | 702 | ||
| 703 | if (get_user(opcode, (unsigned int __user *) exception_epc(regs))) | 703 | if (__get_user(opcode, (unsigned int __user *) exception_epc(regs))) |
| 704 | goto out_sigsegv; | 704 | goto out_sigsegv; |
| 705 | 705 | ||
| 706 | /* Immediate versions don't provide a code. */ | 706 | /* Immediate versions don't provide a code. */ |
