diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 17:23:53 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 17:23:53 -0800 |
commit | 9e42d0cf5020aaf217433cad1a224745241d212a (patch) | |
tree | 8d64537c600024a4220d1309873ac3467726c3b0 /arch/sparc/kernel/unaligned_64.c | |
parent | 97c440ba41d4e7cddb8e14c7c7ec49dad2560709 (diff) | |
parent | 18b8e08e290e9df588f51f5a7df50555f5a25664 (diff) | |
download | linux-9e42d0cf5020aaf217433cad1a224745241d212a.tar.gz linux-9e42d0cf5020aaf217433cad1a224745241d212a.tar.bz2 linux-9e42d0cf5020aaf217433cad1a224745241d212a.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: Work around branch tracer warning.
sparc64: Fix unsigned long long warnings in drivers.
sparc64: Use unsigned long long for u64.
sparc: refactor code in fault_32.c
sparc64: refactor code in init_64.c
sparc64: refactor code in viohs.c
sparc: make proces_ver_nack a bit more readable
Diffstat (limited to 'arch/sparc/kernel/unaligned_64.c')
-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 203ddfad9f27..f164d5a850f9 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 pc = (u32)pc; if (get_user(insn, (u32 __user *) pc) != -EFAULT) { int asi = decode_asi(insn, regs); + int err; + if ((asi > ASI_SNFL) || (asi < ASI_P)) goto daex; - if (get_user(first, (u32 __user *)sfar) || - get_user(second, (u32 __user *)(sfar + 4))) { + err = get_user(first, (u32 __user *)sfar); + if (!err) + err = get_user(second, (u32 __user *)(sfar + 4)); + if (err) { if (asi & 0x2) /* NF */ { first = 0; second = 0; } else |