Subject: Generate SIGILL again

From: Daniel Jacobowitz <[email-masked]>
Date: Sat, 26 Nov 2005 22:34:41 -0500

The rdhwr emulation accidentally swallowed the SIGILL from most other
illegal instructions.  Make sure to return -EFAULT by default.

Signed-off-by: Daniel Jacobowitz <[email-masked]>

diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 7f60f61..63db2fa 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -534,13 +534,14 @@ static inline int simulate_rdhwr(struct 
 		switch (rd) {
 			case 29:
 				regs->regs[rt] = ti->tp_value;
-				break;
+				return 0;
 			default:
 				return -EFAULT;
 		}
 	}
 
-	return 0;
+	/* Not ours.  */
+	return -EFAULT;
 }
 
 asmlinkage void do_ov(struct pt_regs *regs)

-- 
Daniel Jacobowitz
CodeSourcery, LLC