[kernel] revert 15922 - add back 2.6.29 kernel support
[openwrt.git] / target / linux / generic-2.6 / patches-2.6.29 / 022-mips_force_sig_address_errors.patch
1 When init is started it is SIGNAL_UNKILLABLE.  If it were to get an
2 address error, we would try to send it SIGBUS, but it would be ignored
3 and the faulting instruction restarted.  This results in an endless
4 loop.
5
6 We need to use force_sig() instead so it will actually die and give us
7 some useful information.
8
9 Reported-by: Florian Fainelli <florian@openwrt.org>
10
11 Signed-off-by: David Daney <ddaney@caviumnetworks.com>
12 ---
13  arch/mips/kernel/unaligned.c |    6 +++---
14  1 files changed, 3 insertions(+), 3 deletions(-)
15
16 --- a/arch/mips/kernel/unaligned.c
17 +++ b/arch/mips/kernel/unaligned.c
18 @@ -482,19 +482,19 @@ fault:
19                 return;
20  
21         die_if_kernel("Unhandled kernel unaligned access", regs);
22 -       send_sig(SIGSEGV, current, 1);
23 +       force_sig(SIGSEGV, current);
24  
25         return;
26  
27  sigbus:
28         die_if_kernel("Unhandled kernel unaligned access", regs);
29 -       send_sig(SIGBUS, current, 1);
30 +       force_sig(SIGBUS, current);
31  
32         return;
33  
34  sigill:
35         die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
36 -       send_sig(SIGILL, current, 1);
37 +       force_sig(SIGILL, current);
38  }
39  
40  asmlinkage void do_ade(struct pt_regs *regs)