Re: [mmotm] "x86/atomic: move __arch_atomic_add_unless out of line" build error

From: Dmitry Vyukov
Date: Thu Mar 16 2017 - 04:28:01 EST


On Thu, Mar 16, 2017 at 5:47 AM, Sergey Senozhatsky
<sergey.senozhatsky.work@xxxxxxxxx> wrote:
> Hello,
>
> commit 4f86a82ff7df ("x86/atomic: move __arch_atomic_add_unless out of line")
> moved __arch_atomic_add_unless() out atomic.h and new KASAN atomic
> instrumentation [1] can't see it anymore
>
>
> In file included from ./arch/x86/include/asm/atomic.h:257:0,
> from ./include/linux/atomic.h:4,
> from ./include/asm-generic/qspinlock_types.h:28,
> from ./arch/x86/include/asm/spinlock_types.h:26,
> from ./include/linux/spinlock_types.h:13,
> from kernel/bounds.c:13:
> ./include/asm-generic/atomic-instrumented.h: In function â__atomic_add_unlessâ:
> ./include/asm-generic/atomic-instrumented.h:70:9: error: implicit declaration of function â__arch_atomic_add_unlessâ [-Werror=implicit-function-declaration]
> return __arch_atomic_add_unless(v, a, u);
> ^~~~~~~~~~~~~~~~~~~~~~~~
>
>
> so we need a declaration of __arch_atomic_add_unless() in arch/x86/include/asm/atomic.h
>
>
> [1] lkml.kernel.org/r/7e450175a324bf93c602909c711bc34715d8e8f2.1489519233.git.dvyukov@xxxxxxxxxx
>
> -ss


Andi, why did you completely remove __arch_atomic_add_unless() from
the header? Don't we need at least a declaration there?