aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/unaligned_64.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-01-07 17:15:57 -0800
committerDavid S. Miller <davem@davemloft.net>2009-01-07 17:15:57 -0800
commit18b8e08e290e9df588f51f5a7df50555f5a25664 (patch)
treed24969d7dd7b7bb67de96ff661fea253ae068324 /arch/sparc/kernel/unaligned_64.c
parentsparc64: Fix unsigned long long warnings in drivers. (diff)
downloadlinux-dev-18b8e08e290e9df588f51f5a7df50555f5a25664.tar.xz
linux-dev-18b8e08e290e9df588f51f5a7df50555f5a25664.zip
sparc64: Work around branch tracer warning.
As reported by Sam Ravnborg, Gcc-3.4.5 does not handle: if (get_user() || get_user()) with the new branch tracer enabled. Just seperate it out into seperate statements for now so people can get work done. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--arch/sparc/kernel/unaligned_64.c8
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