Re: [PATCH] futex: Fix sparc32/m68k/nds32 build regression

From: Ingo Molnar
Date: Fri Dec 10 2021 - 05:39:41 EST



* Arnd Bergmann <arnd@xxxxxxxxxx> wrote:

> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> In one of the revisions of my futex cleanup series, I botched
> up a rename of some function names, breaking sparc32, m68k
> and nds32:
>
> include/asm-generic/futex.h:17:2: error: implicit declaration of function 'futex_atomic_cmpxchg_inatomic_local_generic'; did you mean 'futex_atomic_cmpxchg_inatomic_local'? [-Werror=implicit-function-declaration]
>
> Fix the macros to point to the correct functions.
>
> Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Fixes: 3f2bedabb62c ("futex: Ensure futex_atomic_cmpxchg_inatomic() is present")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> include/asm-generic/futex.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/asm-generic/futex.h b/include/asm-generic/futex.h
> index 30e7fa63b5df..66d6843bfd02 100644
> --- a/include/asm-generic/futex.h
> +++ b/include/asm-generic/futex.h
> @@ -14,9 +14,9 @@
> *
> */
> #define futex_atomic_cmpxchg_inatomic(uval, uaddr, oldval, newval) \
> - futex_atomic_cmpxchg_inatomic_local_generic(uval, uaddr, oldval, newval)
> + futex_atomic_cmpxchg_inatomic_local(uval, uaddr, oldval, newval)
> #define arch_futex_atomic_op_inuser(op, oparg, oval, uaddr) \
> - arch_futex_atomic_op_inuser_local_generic(op, oparg, oval, uaddr)
> + futex_atomic_op_inuser_local(op, oparg, oval, uaddr)
> #endif /* CONFIG_SMP */
> #endif

Doesn't solve the regression on MIPS defconfig:

# nice -n 5 make -j76 CROSS_COMPILE=/home/mingo/gcc/cross/bin/mips64-linux- ARCH=mips kernel/futex/syscalls.o
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CC kernel/futex/syscalls.o
In file included from kernel/futex/futex.h:12,
from kernel/futex/syscalls.c:7:
./arch/mips/include/asm/futex.h: In function 'arch_futex_atomic_op_inuser':
./arch/mips/include/asm/futex.h:89:23: error: implicit declaration of function 'arch_futex_atomic_op_inuser_local'; did you mean 'futex_atomic_op_inuser_local'? [-Werror=implicit-function-declaration]
89 | ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\

Thanks,

Ingo