]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
microblaze: Reversed logic in futex cmpxchg
authorMeyer, Kirk <Kirk.Meyer@sencore.com>
Thu, 23 May 2013 17:06:57 +0000 (17:06 +0000)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 3 Jun 2013 07:17:31 +0000 (09:17 +0200)
futex_atomic_cmpxchg_inatomic exchanged if the values were
unequal rather than equal. This caused incorrect behavior
of robust futexes.

Signed-off-by: Kirk Meyer <kirk.meyer@sencore.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/microblaze/include/asm/futex.h

index ff8cde159d9a4809abac1994537b5425c71c9cb4..01848f056f439d251f9f61dcc0806a8d47aad4ba 100644 (file)
@@ -105,7 +105,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
 
        __asm__ __volatile__ ("1:       lwx     %1, %3, r0;             \
                                        cmp     %2, %1, %4;             \
-                                       beqi    %2, 3f;                 \
+                                       bnei    %2, 3f;                 \
                                2:      swx     %5, %3, r0;             \
                                        addic   %2, r0, 0;              \
                                        bnei    %2, 1b;                 \