xtensa: fix change_bit in exclusive access option
authorMax Filippov <jcmvbkbc@gmail.com>
Wed, 16 Oct 2019 04:51:43 +0000 (21:51 -0700)
committerMax Filippov <jcmvbkbc@gmail.com>
Wed, 16 Oct 2019 07:14:33 +0000 (00:14 -0700)
change_bit implementation for XCHAL_HAVE_EXCLUSIVE case changes all bits
except the one required due to copy-paste error from clear_bit.

Cc: stable@vger.kernel.org # v5.2+
Fixes: f7c34874f04a ("xtensa: add exclusive atomics support")
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/bitops.h

index aeb15f4c755b379de5d0c0f62eba6eaab7d7229e..be8b2be5a98bd9b8972b88630d2ca978fe3130cc 100644 (file)
@@ -148,7 +148,7 @@ static inline void change_bit(unsigned int bit, volatile unsigned long *p)
                        "       getex   %0\n"
                        "       beqz    %0, 1b\n"
                        : "=&a" (tmp)
-                       : "a" (~mask), "a" (p)
+                       : "a" (mask), "a" (p)
                        : "memory");
 }