futex: Fix additional regressions
authorArnd Bergmann <arnd@arndb.de>
Fri, 3 Dec 2021 08:07:56 +0000 (09:07 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 11 Dec 2021 22:31:51 +0000 (23:31 +0100)
Naresh reported another architecture that was broken by the same typo that
was already fixed for three architectures: mips also refers to the
futex_atomic_op_inuser_local() function by the wrong name and runs into a
missing closing '}' as well.

Going through the source tree the same typo was found in the documentation
as well as in the xtensa code, both of which ended up escaping the
regression testing so far. In the case of xtensa, it appears that the
broken code path is only used when building for platforms that are not
supported by the default gcc configuration, so they are impossible to test
for with default setups.

After going through these more carefully and fixing up the typos, all
architectures have been build-tested again to ensure that this is now
complete.

Fixes: 4e0d84634445 ("futex: Fix sparc32/m68k/nds32 build regression")
Fixes: 3f2bedabb62c ("futex: Ensure futex_atomic_cmpxchg_inatomic() is present")
Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20211203080823.2938839-1-arnd@kernel.org
arch/mips/include/asm/futex.h
arch/xtensa/include/asm/futex.h
include/asm-generic/futex.h

index 9287110cb06d90dccc10a6cb22846ed46c8c569e..8612a7e42d7881d444cebb03d16d99151ecc694e 100644 (file)
@@ -86,9 +86,9 @@
                : "memory");                                            \
        } else {                                                        \
                /* fallback for non-SMP */                              \
-               ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
-                                                       uaddr); \
-       }
+               ret = futex_atomic_op_inuser_local(op, oparg, oval, uaddr);     \
+       }                                                               \
+}
 
 static inline int
 arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
index fe8f31575ab17170bb693db903330f566a22b864..a6f7d7ab59506575524300116c5696f311f5aaff 100644 (file)
@@ -109,7 +109,7 @@ static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval,
 
        return ret;
 #else
-       return arch_futex_atomic_op_inuser_local(op, oparg, oval, uaddr);
+       return futex_atomic_op_inuser_local(op, oparg, oval, uaddr);
 #endif
 }
 
index 66d6843bfd0247e0b3464009ad08f56a46c4d959..2a19215baae53aa1a6e23d01c5e714c3353c0968 100644 (file)
@@ -21,7 +21,7 @@
 #endif
 
 /**
- * arch_futex_atomic_op_inuser_local() - Atomic arithmetic operation with constant
+ * futex_atomic_op_inuser_local() - Atomic arithmetic operation with constant
  *                       argument and comparison of the previous
  *                       futex value with another constant.
  *