Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

microblaze: Reversed logic in futex cmpxchg

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>

authored by

Meyer, Kirk and committed by
Michal Simek
f6a12a7d b5dd0bb4

+1 -1
+1 -1
arch/microblaze/include/asm/futex.h
··· 105 105 106 106 __asm__ __volatile__ ("1: lwx %1, %3, r0; \ 107 107 cmp %2, %1, %4; \ 108 - beqi %2, 3f; \ 108 + bnei %2, 3f; \ 109 109 2: swx %5, %3, r0; \ 110 110 addic %2, r0, 0; \ 111 111 bnei %2, 1b; \