diff options
-rw-r--r-- | arch/sparc/kernel/unaligned_64.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c index 203ddfad9f2..f164d5a850f 100644 --- a/arch/sparc/kernel/unaligned_64.c +++ b/arch/sparc/kernel/unaligned_64.c | |||
@@ -601,11 +601,15 @@ void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr | |||
601 | pc = (u32)pc; | 601 | pc = (u32)pc; |
602 | if (get_user(insn, (u32 __user *) pc) != -EFAULT) { | 602 | if (get_user(insn, (u32 __user *) pc) != -EFAULT) { |
603 | int asi = decode_asi(insn, regs); | 603 | int asi = decode_asi(insn, regs); |
604 | int err; | ||
605 | |||
604 | if ((asi > ASI_SNFL) || | 606 | if ((asi > ASI_SNFL) || |
605 | (asi < ASI_P)) | 607 | (asi < ASI_P)) |
606 | goto daex; | 608 | goto daex; |
607 | if (get_user(first, (u32 __user *)sfar) || | 609 | err = get_user(first, (u32 __user *)sfar); |
608 | get_user(second, (u32 __user *)(sfar + 4))) { | 610 | if (!err) |
611 | err = get_user(second, (u32 __user *)(sfar + 4)); | ||
612 | if (err) { | ||
609 | if (asi & 0x2) /* NF */ { | 613 | if (asi & 0x2) /* NF */ { |
610 | first = 0; second = 0; | 614 | first = 0; second = 0; |
611 | } else | 615 | } else |