tree: https://github.com/c-sky/csky-linux v5.12-rc4-riscv-atomic-arch-v3 head: 516baf028b48129e1941ad764ef9a13271830bdc commit: d985500eec5b9fa31462e5aa2b712b719d0de356 [4/5] locking/atomics: Fixup GENERIC_ATOMIC64 conflict with atomic-arch-fallback.h config: sparc-randconfig-r025-20210419 (attached as .config) compiler: sparc64-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://github.com/c-sky/csky-linux/commit/d985500eec5b9fa31462e5aa2b712b719d0de356 git remote add csky-linux https://github.com/c-sky/csky-linux git fetch --no-tags csky-linux v5.12-rc4-riscv-atomic-arch-v3 git checkout d985500eec5b9fa31462e5aa2b712b719d0de356 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=sparc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: >> include/linux/atomic-fallback.h:1434:1: error: static declaration of 'atomic64_add_return' follows non-static declaration 1434 | atomic64_add_return(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:27:12: note: previous declaration of 'atomic64_add_return' was here 27 | extern s64 atomic64_##op##_return(s64 a, atomic64_t *v); | ^~~~~~~~~ include/asm-generic/atomic64.h:32:42: note: in expansion of macro 'ATOMIC64_OP_RETURN' 32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op) | ^~~~~~~~~~~~~~~~~~ include/asm-generic/atomic64.h:34:1: note: in expansion of macro 'ATOMIC64_OPS' 34 | ATOMIC64_OPS(add) | ^~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: >> include/linux/atomic-fallback.h:1481:1: error: static declaration of 'atomic64_fetch_add' follows non-static declaration 1481 | atomic64_fetch_add(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:30:12: note: previous declaration of 'atomic64_fetch_add' was here 30 | extern s64 atomic64_fetch_##op(s64 a, atomic64_t *v); | ^~~~~~~~~~~~~~~ include/asm-generic/atomic64.h:32:65: note: in expansion of macro 'ATOMIC64_FETCH_OP' 32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op) | ^~~~~~~~~~~~~~~~~ include/asm-generic/atomic64.h:34:1: note: in expansion of macro 'ATOMIC64_OPS' 34 | ATOMIC64_OPS(add) | ^~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1594:1: error: redefinition of 'atomic64_inc' 1594 | atomic64_inc(atomic64_t *v) | ^~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:75:1: note: previous definition of 'atomic64_inc' was here 75 | atomic64_inc(atomic64_t *v) | ^~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1615:1: error: redefinition of 'atomic64_inc_return' 1615 | atomic64_inc_return(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:81:1: note: previous definition of 'atomic64_inc_return' was here 81 | atomic64_inc_return(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1701:1: error: redefinition of 'atomic64_fetch_inc' 1701 | atomic64_fetch_inc(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:87:1: note: previous definition of 'atomic64_fetch_inc' was here 87 | atomic64_fetch_inc(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1777:1: error: redefinition of 'atomic64_dec' 1777 | atomic64_dec(atomic64_t *v) | ^~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:93:1: note: previous definition of 'atomic64_dec' was here 93 | atomic64_dec(atomic64_t *v) | ^~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1798:1: error: redefinition of 'atomic64_dec_return' 1798 | atomic64_dec_return(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:99:1: note: previous definition of 'atomic64_dec_return' was here 99 | atomic64_dec_return(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:1884:1: error: redefinition of 'atomic64_fetch_dec' 1884 | atomic64_fetch_dec(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:105:1: note: previous definition of 'atomic64_fetch_dec' was here 105 | atomic64_fetch_dec(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: >> include/linux/atomic-fallback.h:2009:1: error: redefinition of 'atomic64_andnot' 2009 | atomic64_andnot(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:111:1: note: previous definition of 'atomic64_andnot' was here 111 | atomic64_andnot(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: >> include/linux/atomic-fallback.h:2030:1: error: redefinition of 'atomic64_fetch_andnot' 2030 | atomic64_fetch_andnot(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:117:1: note: previous definition of 'atomic64_fetch_andnot' was here 117 | atomic64_fetch_andnot(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: >> include/linux/atomic-fallback.h:2234:1: error: static declaration of 'atomic64_xchg' follows non-static declaration 2234 | atomic64_xchg(atomic64_t *v, s64 i) | ^~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:67:12: note: previous declaration of 'atomic64_xchg' was here 67 | extern s64 atomic64_xchg(atomic64_t *v, s64 new); | ^~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:2281:1: error: static declaration of 'atomic64_cmpxchg' follows non-static declaration 2281 | atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) | ^~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:63:12: note: previous declaration of 'atomic64_cmpxchg' was here 63 | extern s64 atomic64_cmpxchg(atomic64_t *v, s64 o, s64 n); | ^~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:2409:1: error: conflicting types for 'atomic64_sub_and_test' 2409 | atomic64_sub_and_test(s64 i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:123:1: note: previous definition of 'atomic64_sub_and_test' was here 123 | atomic64_sub_and_test(int i, atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:2428:1: error: redefinition of 'atomic64_dec_and_test' 2428 | atomic64_dec_and_test(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/asm-generic/atomic64.h:129:1: note: previous definition of 'atomic64_dec_and_test' was here 129 | atomic64_dec_and_test(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/atomic.h:84, from include/asm-generic/bitops/lock.h:5, from arch/sparc/include/asm/bitops_32.h:102, from arch/sparc/include/asm/bitops.h:7, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from arch/sparc/vdso/vdso32/../vclock_gettime.c:15, from arch/sparc/vdso/vdso32/vclock_gettime.c:22: include/linux/atomic-fallback.h:2447:1: error: redefinition of 'atomic64_inc_and_test' 2447 | atomic64_inc_and_test(atomic64_t *v) | ^~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/atomic_32.h:19, from arch/sparc/include/asm/atomic.h:7, Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for FRAME_POINTER Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS || MCOUNT Selected by - LOCKDEP && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && !MIPS && !PPC && !ARM && !S390 && !MICROBLAZE && !ARC && !X86 vim +/atomic64_add_return +1434 include/linux/atomic-fallback.h 9fa45070a2e59a Mark Rutland 2018-09-04 1431 9fa45070a2e59a Mark Rutland 2018-09-04 1432 #ifndef atomic64_add_return 765dcd209947e7 Marco Elver 2019-11-26 1433 static __always_inline s64 9fa45070a2e59a Mark Rutland 2018-09-04 @1434 atomic64_add_return(s64 i, atomic64_t *v) 9fa45070a2e59a Mark Rutland 2018-09-04 1435 { 9fa45070a2e59a Mark Rutland 2018-09-04 1436 s64 ret; 9fa45070a2e59a Mark Rutland 2018-09-04 1437 __atomic_pre_full_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1438 ret = atomic64_add_return_relaxed(i, v); 9fa45070a2e59a Mark Rutland 2018-09-04 1439 __atomic_post_full_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1440 return ret; 9fa45070a2e59a Mark Rutland 2018-09-04 1441 } 9fa45070a2e59a Mark Rutland 2018-09-04 1442 #define atomic64_add_return atomic64_add_return 9fa45070a2e59a Mark Rutland 2018-09-04 1443 #endif 9fa45070a2e59a Mark Rutland 2018-09-04 1444 9fa45070a2e59a Mark Rutland 2018-09-04 1445 #endif /* atomic64_add_return_relaxed */ 9fa45070a2e59a Mark Rutland 2018-09-04 1446 5faafd5685764e Peter Zijlstra 2020-06-25 1447 #define arch_atomic64_fetch_add atomic64_fetch_add 5faafd5685764e Peter Zijlstra 2020-06-25 1448 #define arch_atomic64_fetch_add_acquire atomic64_fetch_add_acquire 5faafd5685764e Peter Zijlstra 2020-06-25 1449 #define arch_atomic64_fetch_add_release atomic64_fetch_add_release 5faafd5685764e Peter Zijlstra 2020-06-25 1450 #define arch_atomic64_fetch_add_relaxed atomic64_fetch_add_relaxed 5faafd5685764e Peter Zijlstra 2020-06-25 1451 9fa45070a2e59a Mark Rutland 2018-09-04 1452 #ifndef atomic64_fetch_add_relaxed 9fa45070a2e59a Mark Rutland 2018-09-04 1453 #define atomic64_fetch_add_acquire atomic64_fetch_add 9fa45070a2e59a Mark Rutland 2018-09-04 1454 #define atomic64_fetch_add_release atomic64_fetch_add 9fa45070a2e59a Mark Rutland 2018-09-04 1455 #define atomic64_fetch_add_relaxed atomic64_fetch_add 9fa45070a2e59a Mark Rutland 2018-09-04 1456 #else /* atomic64_fetch_add_relaxed */ 9fa45070a2e59a Mark Rutland 2018-09-04 1457 9fa45070a2e59a Mark Rutland 2018-09-04 1458 #ifndef atomic64_fetch_add_acquire 765dcd209947e7 Marco Elver 2019-11-26 1459 static __always_inline s64 9fa45070a2e59a Mark Rutland 2018-09-04 1460 atomic64_fetch_add_acquire(s64 i, atomic64_t *v) 9fa45070a2e59a Mark Rutland 2018-09-04 1461 { 9fa45070a2e59a Mark Rutland 2018-09-04 1462 s64 ret = atomic64_fetch_add_relaxed(i, v); 9fa45070a2e59a Mark Rutland 2018-09-04 1463 __atomic_acquire_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1464 return ret; 9fa45070a2e59a Mark Rutland 2018-09-04 1465 } 9fa45070a2e59a Mark Rutland 2018-09-04 1466 #define atomic64_fetch_add_acquire atomic64_fetch_add_acquire 9fa45070a2e59a Mark Rutland 2018-09-04 1467 #endif 9fa45070a2e59a Mark Rutland 2018-09-04 1468 9fa45070a2e59a Mark Rutland 2018-09-04 1469 #ifndef atomic64_fetch_add_release 765dcd209947e7 Marco Elver 2019-11-26 1470 static __always_inline s64 9fa45070a2e59a Mark Rutland 2018-09-04 1471 atomic64_fetch_add_release(s64 i, atomic64_t *v) 9fa45070a2e59a Mark Rutland 2018-09-04 1472 { 9fa45070a2e59a Mark Rutland 2018-09-04 1473 __atomic_release_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1474 return atomic64_fetch_add_relaxed(i, v); 9fa45070a2e59a Mark Rutland 2018-09-04 1475 } 9fa45070a2e59a Mark Rutland 2018-09-04 1476 #define atomic64_fetch_add_release atomic64_fetch_add_release 9fa45070a2e59a Mark Rutland 2018-09-04 1477 #endif 9fa45070a2e59a Mark Rutland 2018-09-04 1478 9fa45070a2e59a Mark Rutland 2018-09-04 1479 #ifndef atomic64_fetch_add 765dcd209947e7 Marco Elver 2019-11-26 1480 static __always_inline s64 9fa45070a2e59a Mark Rutland 2018-09-04 @1481 atomic64_fetch_add(s64 i, atomic64_t *v) 9fa45070a2e59a Mark Rutland 2018-09-04 1482 { 9fa45070a2e59a Mark Rutland 2018-09-04 1483 s64 ret; 9fa45070a2e59a Mark Rutland 2018-09-04 1484 __atomic_pre_full_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1485 ret = atomic64_fetch_add_relaxed(i, v); 9fa45070a2e59a Mark Rutland 2018-09-04 1486 __atomic_post_full_fence(); 9fa45070a2e59a Mark Rutland 2018-09-04 1487 return ret; 9fa45070a2e59a Mark Rutland 2018-09-04 1488 } 9fa45070a2e59a Mark Rutland 2018-09-04 1489 #define atomic64_fetch_add atomic64_fetch_add 9fa45070a2e59a Mark Rutland 2018-09-04 1490 #endif 9fa45070a2e59a Mark Rutland 2018-09-04 1491 :::::: The code at line 1434 was first introduced by commit :::::: 9fa45070a2e59a871e1cd3370173369f3a4f61e2 locking/atomics: Switch to generated fallbacks :::::: TO: Mark Rutland :::::: CC: Ingo Molnar --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org