sparc64: Work around branch tracer warning.
authorDavid S. Miller <davem@davemloft.net>
Thu, 8 Jan 2009 01:15:57 +0000 (17:15 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Jan 2009 01:15:57 +0000 (17:15 -0800)
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>
arch/sparc/kernel/unaligned_64.c

index 203ddfad9f27f3c6067760916085624503eee9ff..f164d5a850f98b90a469b24e29cbaaae64f31525 100644 (file)
@@ -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