OSDN Git Service

xtensa: fix futex_atomic_cmpxchg_inatomic
authorMax Filippov <jcmvbkbc@gmail.com>
Fri, 5 Jan 2018 22:27:58 +0000 (14:27 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Fri, 5 Jan 2018 23:55:59 +0000 (15:55 -0800)
commitca47480921587ae30417dd234a9f79af188e3666
tree8855c77493e9a06d7915d83fb2add249f693572c
parent32bb954dbf6db98562cb4477608dc546421caaf6
xtensa: fix futex_atomic_cmpxchg_inatomic

Return 0 if the operation was successful, not the userspace memory
value. Check that userspace value equals passed oldval, not itself.
Don't update *uval if the value wasn't read from userspace memory.

This fixes process hang due to infinite loop in futex_lock_pi.
It also fixes a bunch of glibc tests nptl/tst-mutexpi*.

Cc: stable@vger.kernel.org
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/futex.h