summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Daney <ddaney@caviumnetworks.com>2009-05-05 12:49:47 -0700
committerRalf Baechle <ralf@linux-mips.org>2009-05-14 13:50:29 +0100
commita6d5ff04e83b36e0d5c2c50ef4d18e9f38b5abc2 (patch)
treeb85da186188c8a9d6622849da5e73aa7896911c9
parentd0ce9a5a47113eec041a0972a0b86134b8fd2828 (diff)
downloadop-kernel-dev-a6d5ff04e83b36e0d5c2c50ef4d18e9f38b5abc2.zip
op-kernel-dev-a6d5ff04e83b36e0d5c2c50ef4d18e9f38b5abc2.tar.gz
MIPS: Use force_sig when handling address errors.
When init is started it is SIGNAL_UNKILLABLE. If it were to get an address error, we would try to send it SIGBUS, but it would be ignored and the faulting instruction restarted. This results in an endless loop. We need to use force_sig() instead so it will actually die and give us some useful information. Reported-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/kernel/unaligned.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index bf4c4a9..67bd626 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -482,19 +482,19 @@ fault:
return;
die_if_kernel("Unhandled kernel unaligned access", regs);
- send_sig(SIGSEGV, current, 1);
+ force_sig(SIGSEGV, current);
return;
sigbus:
die_if_kernel("Unhandled kernel unaligned access", regs);
- send_sig(SIGBUS, current, 1);
+ force_sig(SIGBUS, current);
return;
sigill:
die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
- send_sig(SIGILL, current, 1);
+ force_sig(SIGILL, current);
}
asmlinkage void do_ade(struct pt_regs *regs)
OpenPOWER on IntegriCloud