tree:
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/core
head: b12410443a16ab30f9092e916fbad7d56c292953
commit: 5fbaf64d8d194b72d16e60113cc3ca677f224439 [27/33] locking/atomic: powerpc: move to
ARCH_ATOMIC
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?...
git remote add peterz-queue
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue locking/core
git checkout 5fbaf64d8d194b72d16e60113cc3ca677f224439
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_add_unless':
> arch/powerpc/include/asm/atomic.h:548:40: error: implicit
declaration of function 'atomic64_fetch_add_unless'; did you mean
'arch_atomic64_fetch_add_unless'? [-Werror=implicit-function-declaration]
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/cpumask.h:13,
from include/linux/smp.h:13,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/asm-generic/atomic-instrumented.h: At top level:
> include/asm-generic/atomic-instrumented.h:1586:1: error:
conflicting types for 'atomic64_fetch_add_unless'
1586 |
atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/atomic.h:548:40: note: previous implicit declaration of
'atomic64_fetch_add_unless' was here
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/div64.h:27,
from ./arch/powerpc/include/generated/asm/div64.h:1,
from include/linux/math64.h:7,
from include/linux/time.h:6,
from include/linux/compat.h:10,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/qspinlock.h: In function 'queued_spin_lock':
> arch/powerpc/include/asm/qspinlock.h:40:13: error: implicit
declaration of function 'atomic_try_cmpxchg_lock'; did you mean
'atomic_try_cmpxchg'? [-Werror=implicit-function-declaration]
40 | if
(likely(atomic_try_cmpxchg_lock(&lock->val, &val, _Q_LOCKED_VAL)))
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:77:40: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
cc1: some warnings being treated as errors
--
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_add_unless':
> arch/powerpc/include/asm/atomic.h:548:40: error: implicit
declaration of function 'atomic64_fetch_add_unless'; did you mean
'arch_atomic64_fetch_add_unless'? [-Werror=implicit-function-declaration]
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/cpumask.h:13,
from include/linux/smp.h:13,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/asm-generic/atomic-instrumented.h: At top level:
> include/asm-generic/atomic-instrumented.h:1586:1: error:
conflicting types for 'atomic64_fetch_add_unless'
1586 |
atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/atomic.h:548:40: note: previous implicit declaration of
'atomic64_fetch_add_unless' was here
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/div64.h:27,
from ./arch/powerpc/include/generated/asm/div64.h:1,
from include/linux/math64.h:7,
from include/linux/time.h:6,
from include/linux/compat.h:10,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/qspinlock.h: In function 'queued_spin_lock':
> arch/powerpc/include/asm/qspinlock.h:40:13: error: implicit
declaration of function 'atomic_try_cmpxchg_lock'; did you mean
'atomic_try_cmpxchg'? [-Werror=implicit-function-declaration]
40 | if
(likely(atomic_try_cmpxchg_lock(&lock->val, &val, _Q_LOCKED_VAL)))
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:77:40: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:117: arch/powerpc/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1227: prepare0] Error 2
make[1]: Target 'modules_prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'modules_prepare' not remade because of errors.
--
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_add_unless':
> arch/powerpc/include/asm/atomic.h:548:40: error: implicit
declaration of function 'atomic64_fetch_add_unless'; did you mean
'arch_atomic64_fetch_add_unless'? [-Werror=implicit-function-declaration]
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/cpumask.h:13,
from include/linux/smp.h:13,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
include/asm-generic/atomic-instrumented.h: At top level:
> include/asm-generic/atomic-instrumented.h:1586:1: error:
conflicting types for 'atomic64_fetch_add_unless'
1586 |
atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/powerpc/include/asm/paca.h:31,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:22,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/compat.h:14,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/atomic.h:548:40: note: previous implicit declaration of
'atomic64_fetch_add_unless' was here
548 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/atomic-arch-fallback.h:2290:9: note: in expansion of macro
'arch_atomic64_fetch_add_unless'
2290 | return arch_atomic64_fetch_add_unless(v, a, u) != u;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/div64.h:27,
from ./arch/powerpc/include/generated/asm/div64.h:1,
from include/linux/math64.h:7,
from include/linux/time.h:6,
from include/linux/compat.h:10,
from arch/powerpc/kernel/asm-offsets.c:14:
arch/powerpc/include/asm/qspinlock.h: In function 'queued_spin_lock':
> arch/powerpc/include/asm/qspinlock.h:40:13: error: implicit
declaration of function 'atomic_try_cmpxchg_lock'; did you mean
'atomic_try_cmpxchg'? [-Werror=implicit-function-declaration]
40 | if
(likely(atomic_try_cmpxchg_lock(&lock->val, &val, _Q_LOCKED_VAL)))
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:77:40: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:117: arch/powerpc/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1227: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +548 arch/powerpc/include/asm/atomic.h
505
506 #define arch_atomic64_cmpxchg(v, o, n) \
507 (arch_cmpxchg(&((v)->counter), (o), (n)))
508 #define arch_atomic64_cmpxchg_relaxed(v, o, n) \
509 arch_cmpxchg_relaxed(&((v)->counter), (o), (n))
510 #define arch_atomic64_cmpxchg_acquire(v, o, n) \
511 arch_cmpxchg_acquire(&((v)->counter), (o), (n))
512
513 #define arch_atomic64_xchg(v, new) \
514 (arch_xchg(&((v)->counter), new))
515 #define arch_atomic64_xchg_relaxed(v, new) \
516 arch_xchg_relaxed(&((v)->counter), (new))
517
518 /**
519 * atomic64_fetch_add_unless - add unless the number is a given value
520 * @v: pointer of type atomic64_t
521 * @a: the amount to add to v...
522 * @u: ...unless v is equal to u.
523 *
524 * Atomically adds @a to @v, so long as it was not @u.
525 * Returns the old value of @v.
526 */
527 static __inline__ s64 arch_atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
528 {
529 s64 t;
530
531 __asm__ __volatile__ (
532 PPC_ATOMIC_ENTRY_BARRIER
533 "1: ldarx %0,0,%1 # atomic64_fetch_add_unless\n\
534 cmpd 0,%0,%3 \n\
535 beq 2f \n\
536 add %0,%2,%0 \n"
537 " stdcx. %0,0,%1 \n\
538 bne- 1b \n"
539 PPC_ATOMIC_EXIT_BARRIER
540 " subf %0,%2,%0 \n\
541 2:"
542 : "=&r" (t)
543 : "r" (&v->counter), "r" (a), "r" (u)
544 : "cc", "memory");
545
546 return t;
547 }
548 #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
549
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org