On Thu, Jun 17, 2010 at 10:13:18AM -0700, David Daney wrote: > On 06/17/2010 06:25 AM, Jesper Nilsson wrote: > >Breaking here dropped us to the default code which always sends > >a SIGILL to the current process, no matter what the CU2 notifier says. > > > >Signed-off-by: Jesper Nilsson<jesper@xxxxxx> > >--- > > traps.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c > >index 8bdd6a6..8527808 100644 > >--- a/arch/mips/kernel/traps.c > >+++ b/arch/mips/kernel/traps.c > >@@ -976,7 +976,7 @@ asmlinkage void do_cpu(struct pt_regs *regs) > > > > case 2: > > raw_notifier_call_chain(&cu2_chain, CU2_EXCEPTION, regs); > >- break; > >+ return; > > > > What happens when the call chain is empty, and the proper action *is* > SIGILL? Well, since there is a default notifier installed at the end, it will correctly return SIGILL. See the definition of default_cu2_call in the same file. > David Daney /^JN - Jesper Nilsson -- Jesper Nilsson -- jesper_at_jni.nu