aboutsummaryrefslogtreecommitdiff
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 6f3ff969068..59a187956de 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -519,7 +519,7 @@ static inline int simulate_llsc(struct pt_regs *regs)
*/
static inline int simulate_rdhwr(struct pt_regs *regs)
{
- struct thread_info *ti = current->thread_info;
+ struct thread_info *ti = task_thread_info(current);
unsigned int opcode;
if (unlikely(get_insn_opcode(regs, &opcode)))
@@ -534,13 +534,14 @@ static inline int simulate_rdhwr(struct pt_regs *regs)
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)