Hi,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.12-rc7 next-20210414]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/guoren-kernel-org/riscv-atomic-U...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
7f75285ca572eaabc028cf78c6ab5473d0d160be
config: riscv-rv32_defconfig (attached as .config)
compiler: riscv32-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/0day-ci/linux/commit/ed440642566d3f024235d309c5b5a19bd...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
guoren-kernel-org/riscv-atomic-Using-ARCH_ATOMIC-in-asm-atomic-h/20210415-154120
git checkout ed440642566d3f024235d309c5b5a19bda62e9e1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_inc':
> include/linux/atomic-arch-fallback.h:1447:2: error: implicit
declaration of function 'arch_atomic64_add'; did you mean
'arch_atomic_add'? [-Werror=implicit-function-declaration]
1447 |
arch_atomic64_add(1, v);
| ^~~~~~~~~~~~~~~~~
| arch_atomic_add
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_inc_return':
> include/linux/atomic-arch-fallback.h:1463:9: error: implicit
declaration of function 'arch_atomic64_add_return'; did you mean
'arch_atomic_add_return'? [-Werror=implicit-function-declaration]
1463 |
return arch_atomic64_add_return(1, v);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| arch_atomic_add_return
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_fetch_inc':
> include/linux/atomic-arch-fallback.h:1544:9: error: implicit
declaration of function 'arch_atomic64_fetch_add'; did you mean
'arch_atomic_fetch_add'? [-Werror=implicit-function-declaration]
1544 |
return arch_atomic64_fetch_add(1, v);
| ^~~~~~~~~~~~~~~~~~~~~~~
| arch_atomic_fetch_add
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_dec':
> include/linux/atomic-arch-fallback.h:1618:2: error: implicit
declaration of function 'arch_atomic64_sub'; did you mean
'arch_atomic_sub'? [-Werror=implicit-function-declaration]
1618 |
arch_atomic64_sub(1, v);
| ^~~~~~~~~~~~~~~~~
| arch_atomic_sub
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_dec_return':
> include/linux/atomic-arch-fallback.h:1634:9: error: implicit
declaration of function 'arch_atomic64_sub_return'; did you mean
'arch_atomic_sub_return'? [-Werror=implicit-function-declaration]
1634 |
return arch_atomic64_sub_return(1, v);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| arch_atomic_sub_return
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_fetch_dec':
> include/linux/atomic-arch-fallback.h:1715:9: error: implicit
declaration of function 'arch_atomic64_fetch_sub'; did you mean
'arch_atomic_fetch_sub'? [-Werror=implicit-function-declaration]
1715 |
return arch_atomic64_fetch_sub(1, v);
| ^~~~~~~~~~~~~~~~~~~~~~~
| arch_atomic_fetch_sub
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_andnot':
> include/linux/atomic-arch-fallback.h:1831:2: error: implicit
declaration of function 'arch_atomic64_and'; did you mean
'arch_atomic64_inc'? [-Werror=implicit-function-declaration]
1831 |
arch_atomic64_and(~i, v);
| ^~~~~~~~~~~~~~~~~
| arch_atomic64_inc
include/linux/atomic-arch-fallback.h: In function
'arch_atomic64_fetch_andnot':
> include/linux/atomic-arch-fallback.h:1847:9: error: implicit
declaration of function 'arch_atomic64_fetch_and'; did you mean
'arch_atomic64_fetch_inc'? [-Werror=implicit-function-declaration]
1847
| return arch_atomic64_fetch_and(~i, v);
| ^~~~~~~~~~~~~~~~~~~~~~~
| arch_atomic64_fetch_inc
include/linux/atomic-arch-fallback.h: In function 'arch_atomic64_try_cmpxchg':
> include/linux/atomic-arch-fallback.h:2097:6: error: implicit
declaration of function 'arch_atomic64_cmpxchg'; did you mean
'arch_atomic_cmpxchg'? [-Werror=implicit-function-declaration]
2097 | r
= arch_atomic64_cmpxchg(v, o, new);
| ^~~~~~~~~~~~~~~~~~~~~
| arch_atomic_cmpxchg
include/linux/atomic-arch-fallback.h: In function
'arch_atomic64_fetch_add_unless':
> include/linux/atomic-arch-fallback.h:2265:10: error: implicit
declaration of function 'arch_atomic64_read'; did you mean
'arch_atomic_read'? [-Werror=implicit-function-declaration]
2265 | s64
c = arch_atomic64_read(v);
| ^~~~~~~~~~~~~~~~~~
| arch_atomic_read
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: At top level:
> include/asm-generic/atomic-instrumented.h:835:1: error: static
declaration of 'atomic64_read' follows non-static declaration
835 |
atomic64_read(const atomic64_t *v)
| ^~~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:18:12: note: previous declaration of
'atomic64_read' was here
18 | extern s64 atomic64_read(const atomic64_t *v);
| ^~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:853:1: error: static
declaration of 'atomic64_set' follows non-static declaration
853 |
atomic64_set(atomic64_t *v, s64 i)
| ^~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:19:13: note: previous declaration of
'atomic64_set' was here
19 | extern void atomic64_set(atomic64_t *v, s64 i);
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: In function 'atomic64_set':
> include/asm-generic/atomic-instrumented.h:856:2: error: implicit
declaration of function 'arch_atomic64_set'; did you mean
'arch_atomic64_dec'? [-Werror=implicit-function-declaration]
856 |
arch_atomic64_set(v, i);
| ^~~~~~~~~~~~~~~~~
| arch_atomic64_dec
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: At top level:
> include/asm-generic/atomic64.h:21:49: error: expected declaration
specifiers or '...' before '(' token
21 | #define
atomic64_set_release(v, i) atomic64_set((v), (i))
| ^
include/asm-generic/atomic-instrumented.h:862:1: note: in expansion of macro
'atomic64_set_release'
862 | atomic64_set_release(atomic64_t *v, s64 i)
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic64.h:21:54: error: expected declaration specifiers or
'...' before '(' token
21 | #define atomic64_set_release(v, i) atomic64_set((v), (i))
| ^
include/asm-generic/atomic-instrumented.h:862:1: note: in expansion of macro
'atomic64_set_release'
862 | atomic64_set_release(atomic64_t *v, s64 i)
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:867: warning:
"atomic64_set_release" redefined
867 | #define atomic64_set_release
atomic64_set_release
|
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:21: note: this is the location of the previous
definition
21 | #define atomic64_set_release(v, i) atomic64_set((v), (i))
|
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:871:1: error: static
declaration of 'atomic64_add' follows non-static declaration
871 |
atomic64_add(s64 i, atomic64_t *v)
| ^~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:24:14: note: previous declaration of
'atomic64_add' was here
24 | extern void atomic64_##op(s64 a, atomic64_t *v);
| ^~~~~~~~~
include/asm-generic/atomic64.h:32:26: note: in expansion of macro
'ATOMIC64_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:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:959:1: error: static
declaration of 'atomic64_sub' follows non-static declaration
959 |
atomic64_sub(s64 i, atomic64_t *v)
| ^~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:24:14: note: previous declaration of
'atomic64_sub' was here
24 | extern void atomic64_##op(s64 a, atomic64_t *v);
| ^~~~~~~~~
include/asm-generic/atomic64.h:32:26: note: in expansion of macro
'ATOMIC64_OP'
32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op)
ATOMIC64_FETCH_OP(op)
| ^~~~~~~~~~~
include/asm-generic/atomic64.h:35:1: note: in expansion of macro
'ATOMIC64_OPS'
35 | ATOMIC64_OPS(sub)
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:1227:1: error: static
declaration of 'atomic64_and' follows non-static declaration
1227 |
atomic64_and(s64 i, atomic64_t *v)
| ^~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:24:14: note: previous declaration of
'atomic64_and' was here
24 | extern void atomic64_##op(s64 a, atomic64_t *v);
| ^~~~~~~~~
include/asm-generic/atomic64.h:38:26: note: in expansion of macro
'ATOMIC64_OP'
38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
| ^~~~~~~~~~~
include/asm-generic/atomic64.h:40:1: note: in expansion of macro
'ATOMIC64_OPS'
40 | ATOMIC64_OPS(and)
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
> include/asm-generic/atomic-instrumented.h:1325:1: error: static
declaration of 'atomic64_or' follows non-static declaration
1325 |
atomic64_or(s64 i, atomic64_t *v)
| ^~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:24:14: note: previous declaration of
'atomic64_or' was here
24 | extern void atomic64_##op(s64 a, atomic64_t *v);
| ^~~~~~~~~
include/asm-generic/atomic64.h:38:26: note: in expansion of macro
'ATOMIC64_OP'
38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
| ^~~~~~~~~~~
include/asm-generic/atomic64.h:41:1: note: in expansion of macro
'ATOMIC64_OPS'
41 | ATOMIC64_OPS(or)
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: In function 'atomic64_or':
> include/asm-generic/atomic-instrumented.h:1328:2: error: implicit
declaration of function 'arch_atomic64_or'; did you mean 'arch_atomic_or'?
[-Werror=implicit-function-declaration]
1328 | arch_atomic64_or(i, v);
| ^~~~~~~~~~~~~~~~
| arch_atomic_or
In file included from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: In function
'atomic64_fetch_or_acquire':
include/linux/atomic-arch-fallback.h:1918:40: error: implicit declaration of function
'arch_atomic64_fetch_or'; did you mean 'arch_atomic_fetch_or'?
[-Werror=implicit-function-declaration]
1918 | #define arch_atomic64_fetch_or_acquire arch_atomic64_fetch_or
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1347:9: note: in expansion of macro
'arch_atomic64_fetch_or_acquire'
1347 | return arch_atomic64_fetch_or_acquire(i, v);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: At top level:
include/asm-generic/atomic-instrumented.h:1373:1: error: static declaration of
'atomic64_xor' follows non-static declaration
1373 | atomic64_xor(s64 i, atomic64_t *v)
| ^~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic64.h:24:14: note: previous declaration of
'atomic64_xor' was here
24 | extern void atomic64_##op(s64 a, atomic64_t *v);
| ^~~~~~~~~
include/asm-generic/atomic64.h:38:26: note: in expansion of macro
'ATOMIC64_OP'
38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
| ^~~~~~~~~~~
include/asm-generic/atomic64.h:42:1: note: in expansion of macro
'ATOMIC64_OPS'
42 | ATOMIC64_OPS(xor)
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: In function 'atomic64_xor':
include/asm-generic/atomic-instrumented.h:1376:2: error: implicit declaration of
function 'arch_atomic64_xor'; did you mean 'arch_atomic_xor'?
[-Werror=implicit-function-declaration]
1376 | arch_atomic64_xor(i, v);
| ^~~~~~~~~~~~~~~~~
| arch_atomic_xor
In file included from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: In function
'atomic64_fetch_xor_acquire':
include/linux/atomic-arch-fallback.h:1960:41: error: implicit declaration of function
'arch_atomic64_fetch_xor'; did you mean 'arch_atomic_fetch_xor'?
[-Werror=implicit-function-declaration]
1960 | #define arch_atomic64_fetch_xor_acquire arch_atomic64_fetch_xor
| ^~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1395:9: note: in expansion of macro
'arch_atomic64_fetch_xor_acquire'
1395 | return arch_atomic64_fetch_xor_acquire(i, v);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h: In function
'atomic64_xchg_acquire':
include/linux/atomic-arch-fallback.h:2002:36: error: implicit declaration of function
'arch_atomic64_xchg'; did you mean 'arch_atomic_xchg'?
[-Werror=implicit-function-declaration]
2002 | #define arch_atomic64_xchg_acquire arch_atomic64_xchg
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1435:9: note: in expansion of macro
'arch_atomic64_xchg_acquire'
1435 | return arch_atomic64_xchg_acquire(v, i);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/atomic-arch-fallback.h:1254,
from include/linux/atomic.h:81,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from arch/riscv/kernel/asm-offsets.c:10:
include/asm-generic/atomic-instrumented.h: At top level:
include/asm-generic/atomic64.h:54:35: error: static declaration of
'atomic64_fetch_add_unless' follows non-static declaration
54 | #define atomic64_fetch_add_unless atomic64_fetch_add_unless
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1586:1: note: in expansion of macro
'atomic64_fetch_add_unless'
1586 | atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic64.h:53:12: note: previous declaration of
'atomic64_fetch_add_unless' was here
53 | extern s64 atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic64.h:50:34: error: static declaration of
'atomic64_dec_if_positive' follows non-static declaration
50 | #define atomic64_dec_if_positive atomic64_dec_if_positive
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1636:1: note: in expansion of macro
'atomic64_dec_if_positive'
1636 | atomic64_dec_if_positive(atomic64_t *v)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/atomic64.h:49:12: note: previous declaration of
'atomic64_dec_if_positive' was here
49 | extern s64 atomic64_dec_if_positive(atomic64_t *v);
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
..
vim +1463 include/linux/atomic-arch-fallback.h
37f8173dd84936 Peter Zijlstra 2020-01-24 1442
37f8173dd84936 Peter Zijlstra 2020-01-24 1443 #ifndef arch_atomic64_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1444 static __always_inline void
37f8173dd84936 Peter Zijlstra 2020-01-24 1445 arch_atomic64_inc(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1446 {
37f8173dd84936 Peter Zijlstra 2020-01-24 @1447 arch_atomic64_add(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1448 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1449 #define arch_atomic64_inc
arch_atomic64_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1450 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1451
37f8173dd84936 Peter Zijlstra 2020-01-24 1452 #ifndef arch_atomic64_inc_return_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1453 #ifdef arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1454 #define arch_atomic64_inc_return_acquire
arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1455 #define arch_atomic64_inc_return_release
arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1456 #define arch_atomic64_inc_return_relaxed
arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1457 #endif /* arch_atomic64_inc_return */
37f8173dd84936 Peter Zijlstra 2020-01-24 1458
37f8173dd84936 Peter Zijlstra 2020-01-24 1459 #ifndef arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1460 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1461 arch_atomic64_inc_return(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1462 {
37f8173dd84936 Peter Zijlstra 2020-01-24 @1463 return arch_atomic64_add_return(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1464 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1465 #define arch_atomic64_inc_return
arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1466 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1467
37f8173dd84936 Peter Zijlstra 2020-01-24 1468 #ifndef arch_atomic64_inc_return_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1469 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1470
arch_atomic64_inc_return_acquire(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1471 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1472 return
arch_atomic64_add_return_acquire(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1473 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1474 #define arch_atomic64_inc_return_acquire
arch_atomic64_inc_return_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1475 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1476
37f8173dd84936 Peter Zijlstra 2020-01-24 1477 #ifndef arch_atomic64_inc_return_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1478 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1479
arch_atomic64_inc_return_release(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1480 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1481 return
arch_atomic64_add_return_release(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1482 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1483 #define arch_atomic64_inc_return_release
arch_atomic64_inc_return_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1484 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1485
37f8173dd84936 Peter Zijlstra 2020-01-24 1486 #ifndef arch_atomic64_inc_return_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1487 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1488
arch_atomic64_inc_return_relaxed(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1489 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1490 return
arch_atomic64_add_return_relaxed(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1491 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1492 #define arch_atomic64_inc_return_relaxed
arch_atomic64_inc_return_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1493 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1494
37f8173dd84936 Peter Zijlstra 2020-01-24 1495 #else /* arch_atomic64_inc_return_relaxed
*/
37f8173dd84936 Peter Zijlstra 2020-01-24 1496
37f8173dd84936 Peter Zijlstra 2020-01-24 1497 #ifndef arch_atomic64_inc_return_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1498 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1499
arch_atomic64_inc_return_acquire(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1500 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1501 s64 ret =
arch_atomic64_inc_return_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1502 __atomic_acquire_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1503 return ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1504 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1505 #define arch_atomic64_inc_return_acquire
arch_atomic64_inc_return_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1506 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1507
37f8173dd84936 Peter Zijlstra 2020-01-24 1508 #ifndef arch_atomic64_inc_return_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1509 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1510
arch_atomic64_inc_return_release(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1511 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1512 __atomic_release_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1513 return
arch_atomic64_inc_return_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1514 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1515 #define arch_atomic64_inc_return_release
arch_atomic64_inc_return_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1516 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1517
37f8173dd84936 Peter Zijlstra 2020-01-24 1518 #ifndef arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1519 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1520 arch_atomic64_inc_return(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1521 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1522 s64 ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1523 __atomic_pre_full_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1524 ret =
arch_atomic64_inc_return_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1525 __atomic_post_full_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1526 return ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1527 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1528 #define arch_atomic64_inc_return
arch_atomic64_inc_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1529 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1530
37f8173dd84936 Peter Zijlstra 2020-01-24 1531 #endif /* arch_atomic64_inc_return_relaxed
*/
37f8173dd84936 Peter Zijlstra 2020-01-24 1532
37f8173dd84936 Peter Zijlstra 2020-01-24 1533 #ifndef arch_atomic64_fetch_inc_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1534 #ifdef arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1535 #define arch_atomic64_fetch_inc_acquire
arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1536 #define arch_atomic64_fetch_inc_release
arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1537 #define arch_atomic64_fetch_inc_relaxed
arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1538 #endif /* arch_atomic64_fetch_inc */
37f8173dd84936 Peter Zijlstra 2020-01-24 1539
37f8173dd84936 Peter Zijlstra 2020-01-24 1540 #ifndef arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1541 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1542 arch_atomic64_fetch_inc(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1543 {
37f8173dd84936 Peter Zijlstra 2020-01-24 @1544 return arch_atomic64_fetch_add(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1545 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1546 #define arch_atomic64_fetch_inc
arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1547 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1548
37f8173dd84936 Peter Zijlstra 2020-01-24 1549 #ifndef arch_atomic64_fetch_inc_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1550 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1551 arch_atomic64_fetch_inc_acquire(atomic64_t
*v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1552 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1553 return arch_atomic64_fetch_add_acquire(1,
v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1554 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1555 #define arch_atomic64_fetch_inc_acquire
arch_atomic64_fetch_inc_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1556 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1557
37f8173dd84936 Peter Zijlstra 2020-01-24 1558 #ifndef arch_atomic64_fetch_inc_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1559 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1560 arch_atomic64_fetch_inc_release(atomic64_t
*v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1561 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1562 return arch_atomic64_fetch_add_release(1,
v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1563 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1564 #define arch_atomic64_fetch_inc_release
arch_atomic64_fetch_inc_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1565 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1566
37f8173dd84936 Peter Zijlstra 2020-01-24 1567 #ifndef arch_atomic64_fetch_inc_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1568 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1569 arch_atomic64_fetch_inc_relaxed(atomic64_t
*v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1570 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1571 return arch_atomic64_fetch_add_relaxed(1,
v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1572 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1573 #define arch_atomic64_fetch_inc_relaxed
arch_atomic64_fetch_inc_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1574 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1575
37f8173dd84936 Peter Zijlstra 2020-01-24 1576 #else /* arch_atomic64_fetch_inc_relaxed
*/
37f8173dd84936 Peter Zijlstra 2020-01-24 1577
37f8173dd84936 Peter Zijlstra 2020-01-24 1578 #ifndef arch_atomic64_fetch_inc_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1579 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1580 arch_atomic64_fetch_inc_acquire(atomic64_t
*v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1581 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1582 s64 ret =
arch_atomic64_fetch_inc_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1583 __atomic_acquire_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1584 return ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1585 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1586 #define arch_atomic64_fetch_inc_acquire
arch_atomic64_fetch_inc_acquire
37f8173dd84936 Peter Zijlstra 2020-01-24 1587 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1588
37f8173dd84936 Peter Zijlstra 2020-01-24 1589 #ifndef arch_atomic64_fetch_inc_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1590 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1591 arch_atomic64_fetch_inc_release(atomic64_t
*v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1592 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1593 __atomic_release_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1594 return
arch_atomic64_fetch_inc_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1595 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1596 #define arch_atomic64_fetch_inc_release
arch_atomic64_fetch_inc_release
37f8173dd84936 Peter Zijlstra 2020-01-24 1597 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1598
37f8173dd84936 Peter Zijlstra 2020-01-24 1599 #ifndef arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1600 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1601 arch_atomic64_fetch_inc(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1602 {
37f8173dd84936 Peter Zijlstra 2020-01-24 1603 s64 ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1604 __atomic_pre_full_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1605 ret =
arch_atomic64_fetch_inc_relaxed(v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1606 __atomic_post_full_fence();
37f8173dd84936 Peter Zijlstra 2020-01-24 1607 return ret;
37f8173dd84936 Peter Zijlstra 2020-01-24 1608 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1609 #define arch_atomic64_fetch_inc
arch_atomic64_fetch_inc
37f8173dd84936 Peter Zijlstra 2020-01-24 1610 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1611
37f8173dd84936 Peter Zijlstra 2020-01-24 1612 #endif /* arch_atomic64_fetch_inc_relaxed
*/
37f8173dd84936 Peter Zijlstra 2020-01-24 1613
37f8173dd84936 Peter Zijlstra 2020-01-24 1614 #ifndef arch_atomic64_dec
37f8173dd84936 Peter Zijlstra 2020-01-24 1615 static __always_inline void
37f8173dd84936 Peter Zijlstra 2020-01-24 1616 arch_atomic64_dec(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1617 {
37f8173dd84936 Peter Zijlstra 2020-01-24 @1618 arch_atomic64_sub(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1619 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1620 #define arch_atomic64_dec
arch_atomic64_dec
37f8173dd84936 Peter Zijlstra 2020-01-24 1621 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1622
37f8173dd84936 Peter Zijlstra 2020-01-24 1623 #ifndef arch_atomic64_dec_return_relaxed
37f8173dd84936 Peter Zijlstra 2020-01-24 1624 #ifdef arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1625 #define arch_atomic64_dec_return_acquire
arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1626 #define arch_atomic64_dec_return_release
arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1627 #define arch_atomic64_dec_return_relaxed
arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1628 #endif /* arch_atomic64_dec_return */
37f8173dd84936 Peter Zijlstra 2020-01-24 1629
37f8173dd84936 Peter Zijlstra 2020-01-24 1630 #ifndef arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1631 static __always_inline s64
37f8173dd84936 Peter Zijlstra 2020-01-24 1632 arch_atomic64_dec_return(atomic64_t *v)
37f8173dd84936 Peter Zijlstra 2020-01-24 1633 {
37f8173dd84936 Peter Zijlstra 2020-01-24 @1634 return arch_atomic64_sub_return(1, v);
37f8173dd84936 Peter Zijlstra 2020-01-24 1635 }
37f8173dd84936 Peter Zijlstra 2020-01-24 1636 #define arch_atomic64_dec_return
arch_atomic64_dec_return
37f8173dd84936 Peter Zijlstra 2020-01-24 1637 #endif
37f8173dd84936 Peter Zijlstra 2020-01-24 1638
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org