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: powerpc64-randconfig-r022-20210419 (attached as .config)
compiler: clang version 13.0.0 (
https://github.com/llvm/llvm-project
2b50f5a4343f8fb06acaa5c36355bcf58092c9cd)
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
# install powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
#
https://github.com/c-sky/csky-linux/commit/d985500eec5b9fa31462e5aa2b712b...
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=clang make.cross W=1 ARCH=powerpc64
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 >>):
> lib/atomic64_test.c:177:2: error: implicit declaration of
function 'atomic64_sub_return_acquire' [-Werror,-Wimplicit-function-declaration]
RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
^
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
lib/atomic64_test.c:177:2: note: did you mean 'atomic_sub_return_acquire'?
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:285:1: note: 'atomic_sub_return_acquire'
declared here
atomic_sub_return_acquire(int i, atomic_t *v)
^
> lib/atomic64_test.c:177:2: error: implicit declaration of
function 'atomic64_sub_return_release' [-Werror,-Wimplicit-function-declaration]
RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
^
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
lib/atomic64_test.c:177:2: note: did you mean 'atomic_sub_return_release'?
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:296:1: note: 'atomic_sub_return_release'
declared here
atomic_sub_return_release(int i, atomic_t *v)
^
> lib/atomic64_test.c:177:2: error: implicit declaration of
function 'atomic64_sub_return_relaxed' [-Werror,-Wimplicit-function-declaration]
RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
^
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
lib/atomic64_test.c:177:2: note: did you mean 'atomic_sub_return_relaxed'?
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
arch/powerpc/include/asm/atomic.h:95:1: note: 'atomic_sub_return_relaxed'
declared here
ATOMIC_OPS(sub, subf)
^
arch/powerpc/include/asm/atomic.h:91:2: note: expanded from macro 'ATOMIC_OPS'
ATOMIC_OP_RETURN_RELAXED(op, asm_op) \
^
arch/powerpc/include/asm/atomic.h:56:19: note: expanded from macro
'ATOMIC_OP_RETURN_RELAXED'
static inline int atomic_##op##_return_relaxed(int a, atomic_t *v) \
^
<scratch space>:88:1: note: expanded from here
atomic_sub_return_relaxed
^
lib/atomic64_test.c:178:2: error: implicit declaration of function
'atomic64_sub_return_acquire' [-Werror,-Wimplicit-function-declaration]
RETURN_FAMILY_TEST(64, sub_return, -=, -one);
^
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
lib/atomic64_test.c:178:2: error: implicit declaration of function
'atomic64_sub_return_release' [-Werror,-Wimplicit-function-declaration]
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
lib/atomic64_test.c:178:2: error: implicit declaration of function
'atomic64_sub_return_relaxed' [-Werror,-Wimplicit-function-declaration]
lib/atomic64_test.c:64:14: note: expanded from macro 'RETURN_FAMILY_TEST'
FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
^
> lib/atomic64_test.c:182:2: error: implicit declaration of
function 'atomic64_fetch_sub_acquire' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:182:2: note: did you mean 'atomic_fetch_sub_acquire'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:332:1: note: 'atomic_fetch_sub_acquire'
declared here
atomic_fetch_sub_acquire(int i, atomic_t *v)
^
> lib/atomic64_test.c:182:2: error: implicit declaration of
function 'atomic64_fetch_sub_release' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:182:2: note: did you mean 'atomic_fetch_sub_release'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:343:1: note: 'atomic_fetch_sub_release'
declared here
atomic_fetch_sub_release(int i, atomic_t *v)
^
> lib/atomic64_test.c:182:2: error: implicit declaration of
function 'atomic64_fetch_sub_relaxed' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:182:2: note: did you mean 'atomic_fetch_sub_relaxed'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
arch/powerpc/include/asm/atomic.h:95:1: note: 'atomic_fetch_sub_relaxed'
declared here
ATOMIC_OPS(sub, subf)
^
arch/powerpc/include/asm/atomic.h:92:2: note: expanded from macro 'ATOMIC_OPS'
ATOMIC_FETCH_OP_RELAXED(op, asm_op)
^
arch/powerpc/include/asm/atomic.h:73:19: note: expanded from macro
'ATOMIC_FETCH_OP_RELAXED'
static inline int atomic_fetch_##op##_relaxed(int a, atomic_t *v) \
^
<scratch space>:92:1: note: expanded from here
atomic_fetch_sub_relaxed
^
lib/atomic64_test.c:183:2: error: implicit declaration of function
'atomic64_fetch_sub_acquire' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_sub, -=, -one);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:183:2: error: implicit declaration of function
'atomic64_fetch_sub_release' [-Werror,-Wimplicit-function-declaration]
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:183:2: error: implicit declaration of function
'atomic64_fetch_sub_relaxed' [-Werror,-Wimplicit-function-declaration]
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
> lib/atomic64_test.c:185:2: error: implicit declaration of
function 'atomic64_fetch_or_acquire' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:185:2: note: did you mean 'atomic_fetch_or_acquire'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:893:1: note: 'atomic_fetch_or_acquire' declared
here
atomic_fetch_or_acquire(int i, atomic_t *v)
^
> lib/atomic64_test.c:185:2: error: implicit declaration of
function 'atomic64_fetch_or_release' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:185:2: note: did you mean 'atomic_fetch_or_release'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:904:1: note: 'atomic_fetch_or_release' declared
here
atomic_fetch_or_release(int i, atomic_t *v)
^
> lib/atomic64_test.c:185:2: error: implicit declaration of
function 'atomic64_fetch_or_relaxed' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:185:2: note: did you mean 'atomic_fetch_or_relaxed'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
arch/powerpc/include/asm/atomic.h:109:1: note: 'atomic_fetch_or_relaxed'
declared here
ATOMIC_OPS(or, or)
^
arch/powerpc/include/asm/atomic.h:106:2: note: expanded from macro
'ATOMIC_OPS'
ATOMIC_FETCH_OP_RELAXED(op, asm_op)
^
arch/powerpc/include/asm/atomic.h:73:19: note: expanded from macro
'ATOMIC_FETCH_OP_RELAXED'
static inline int atomic_fetch_##op##_relaxed(int a, atomic_t *v) \
^
<scratch space>:106:1: note: expanded from here
atomic_fetch_or_relaxed
^
> lib/atomic64_test.c:186:2: error: implicit declaration of
function 'atomic64_fetch_and_acquire' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:186:2: note: did you mean 'atomic_fetch_and_acquire'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:747:1: note: 'atomic_fetch_and_acquire'
declared here
atomic_fetch_and_acquire(int i, atomic_t *v)
^
> lib/atomic64_test.c:186:2: error: implicit declaration of
function 'atomic64_fetch_and_release' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:186:2: note: did you mean 'atomic_fetch_and_release'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:758:1: note: 'atomic_fetch_and_release'
declared here
atomic_fetch_and_release(int i, atomic_t *v)
^
> lib/atomic64_test.c:186:2: error: implicit declaration of
function 'atomic64_fetch_and_relaxed' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:186:2: note: did you mean 'atomic_fetch_and_relaxed'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
arch/powerpc/include/asm/atomic.h:108:1: note: 'atomic_fetch_and_relaxed'
declared here
ATOMIC_OPS(and, and)
^
arch/powerpc/include/asm/atomic.h:106:2: note: expanded from macro
'ATOMIC_OPS'
ATOMIC_FETCH_OP_RELAXED(op, asm_op)
^
arch/powerpc/include/asm/atomic.h:73:19: note: expanded from macro
'ATOMIC_FETCH_OP_RELAXED'
static inline int atomic_fetch_##op##_relaxed(int a, atomic_t *v) \
^
<scratch space>:99:1: note: expanded from here
atomic_fetch_and_relaxed
^
> lib/atomic64_test.c:187:2: error: implicit declaration of
function 'atomic64_fetch_andnot_acquire' [-Werror,-Wimplicit-function-declaration]
FETCH_FAMILY_TEST(64, fetch_andnot, &= ~, v1);
^
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
lib/atomic64_test.c:187:2: note: did you mean 'atomic_fetch_andnot_acquire'?
lib/atomic64_test.c:69:14: note: expanded from macro 'FETCH_FAMILY_TEST'
FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
^
include/linux/atomic-fallback.h:815:1: note: 'atomic_fetch_andnot_acquire'
declared here
atomic_fetch_andnot_acquire(int i, atomic_t *v)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
vim +/atomic64_sub_return_acquire +177 lib/atomic64_test.c
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 145
86a8938078a8bb Luca Barbieri 2010-02-24 146 #define INIT(c) do { atomic64_set(&v,
c); r = c; } while (0)
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 147 static __init void test_atomic64(void)
86a8938078a8bb Luca Barbieri 2010-02-24 148 {
86a8938078a8bb Luca Barbieri 2010-02-24 149 long long v0 = 0xaaa31337c001d00dLL;
86a8938078a8bb Luca Barbieri 2010-02-24 150 long long v1 = 0xdeadbeefdeafcafeLL;
86a8938078a8bb Luca Barbieri 2010-02-24 151 long long v2 = 0xfaceabadf00df001LL;
ffba19ccae8d98 Michael Ellerman 2017-07-14 152 long long v3 = 0x8000000000000000LL;
86a8938078a8bb Luca Barbieri 2010-02-24 153 long long onestwos =
0x1111111122222222LL;
86a8938078a8bb Luca Barbieri 2010-02-24 154 long long one = 1LL;
ffba19ccae8d98 Michael Ellerman 2017-07-14 155 int r_int;
86a8938078a8bb Luca Barbieri 2010-02-24 156
86a8938078a8bb Luca Barbieri 2010-02-24 157 atomic64_t v = ATOMIC64_INIT(v0);
86a8938078a8bb Luca Barbieri 2010-02-24 158 long long r = v0;
86a8938078a8bb Luca Barbieri 2010-02-24 159 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 160
86a8938078a8bb Luca Barbieri 2010-02-24 161 atomic64_set(&v, v1);
86a8938078a8bb Luca Barbieri 2010-02-24 162 r = v1;
86a8938078a8bb Luca Barbieri 2010-02-24 163 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 164 BUG_ON(atomic64_read(&v) != r);
86a8938078a8bb Luca Barbieri 2010-02-24 165
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 166 TEST(64, add, +=, onestwos);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 167 TEST(64, add, +=, -one);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 168 TEST(64, sub, -=, onestwos);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 169 TEST(64, sub, -=, -one);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 170 TEST(64, or, |=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 171 TEST(64, and, &=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 172 TEST(64, xor, ^=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 173 TEST(64, andnot, &= ~, v1);
86a8938078a8bb Luca Barbieri 2010-02-24 174
978e5a3692c3b6 Boqun Feng 2015-11-04 175 RETURN_FAMILY_TEST(64, add_return, +=,
onestwos);
978e5a3692c3b6 Boqun Feng 2015-11-04 176 RETURN_FAMILY_TEST(64, add_return, +=,
-one);
978e5a3692c3b6 Boqun Feng 2015-11-04 @177 RETURN_FAMILY_TEST(64, sub_return, -=,
onestwos);
978e5a3692c3b6 Boqun Feng 2015-11-04 178 RETURN_FAMILY_TEST(64, sub_return, -=,
-one);
86a8938078a8bb Luca Barbieri 2010-02-24 179
28aa2bda2211f4 Peter Zijlstra 2016-04-18 180 FETCH_FAMILY_TEST(64, fetch_add, +=,
onestwos);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 181 FETCH_FAMILY_TEST(64, fetch_add, +=,
-one);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 @182 FETCH_FAMILY_TEST(64, fetch_sub, -=,
onestwos);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 183 FETCH_FAMILY_TEST(64, fetch_sub, -=,
-one);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 184
28aa2bda2211f4 Peter Zijlstra 2016-04-18 @185 FETCH_FAMILY_TEST(64, fetch_or, |=,
v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 @186 FETCH_FAMILY_TEST(64, fetch_and, &=,
v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 @187 FETCH_FAMILY_TEST(64, fetch_andnot,
&= ~, v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 188 FETCH_FAMILY_TEST(64, fetch_xor, ^=,
v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 189
86a8938078a8bb Luca Barbieri 2010-02-24 190 INIT(v0);
86a8938078a8bb Luca Barbieri 2010-02-24 191 atomic64_inc(&v);
86a8938078a8bb Luca Barbieri 2010-02-24 192 r += one;
86a8938078a8bb Luca Barbieri 2010-02-24 193 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 194
86a8938078a8bb Luca Barbieri 2010-02-24 195 INIT(v0);
86a8938078a8bb Luca Barbieri 2010-02-24 196 atomic64_dec(&v);
86a8938078a8bb Luca Barbieri 2010-02-24 197 r -= one;
86a8938078a8bb Luca Barbieri 2010-02-24 198 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 199
978e5a3692c3b6 Boqun Feng 2015-11-04 200 INC_RETURN_FAMILY_TEST(64, v0);
978e5a3692c3b6 Boqun Feng 2015-11-04 201 DEC_RETURN_FAMILY_TEST(64, v0);
86a8938078a8bb Luca Barbieri 2010-02-24 202
978e5a3692c3b6 Boqun Feng 2015-11-04 203 XCHG_FAMILY_TEST(64, v0, v1);
978e5a3692c3b6 Boqun Feng 2015-11-04 204 CMPXCHG_FAMILY_TEST(64, v0, v1, v2);
86a8938078a8bb Luca Barbieri 2010-02-24 205
86a8938078a8bb Luca Barbieri 2010-02-24 206 INIT(v0);
9efbcd59024304 Luca Barbieri 2010-03-01 207 BUG_ON(atomic64_add_unless(&v, one,
v0));
86a8938078a8bb Luca Barbieri 2010-02-24 208 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 209
86a8938078a8bb Luca Barbieri 2010-02-24 210 INIT(v0);
9efbcd59024304 Luca Barbieri 2010-03-01 211 BUG_ON(!atomic64_add_unless(&v, one,
v1));
86a8938078a8bb Luca Barbieri 2010-02-24 212 r += one;
86a8938078a8bb Luca Barbieri 2010-02-24 213 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 214
86a8938078a8bb Luca Barbieri 2010-02-24 215 INIT(onestwos);
86a8938078a8bb Luca Barbieri 2010-02-24 216 BUG_ON(atomic64_dec_if_positive(&v)
!= (onestwos - 1));
86a8938078a8bb Luca Barbieri 2010-02-24 217 r -= one;
86a8938078a8bb Luca Barbieri 2010-02-24 218 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 219
86a8938078a8bb Luca Barbieri 2010-02-24 220 INIT(0);
86a8938078a8bb Luca Barbieri 2010-02-24 221 BUG_ON(atomic64_dec_if_positive(&v)
!= -one);
86a8938078a8bb Luca Barbieri 2010-02-24 222 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 223
86a8938078a8bb Luca Barbieri 2010-02-24 224 INIT(-one);
86a8938078a8bb Luca Barbieri 2010-02-24 225 BUG_ON(atomic64_dec_if_positive(&v)
!= (-one - one));
86a8938078a8bb Luca Barbieri 2010-02-24 226 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 227
86a8938078a8bb Luca Barbieri 2010-02-24 228 INIT(onestwos);
25a304f277ad70 Luca Barbieri 2010-03-01 229 BUG_ON(!atomic64_inc_not_zero(&v));
86a8938078a8bb Luca Barbieri 2010-02-24 230 r += one;
86a8938078a8bb Luca Barbieri 2010-02-24 231 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 232
86a8938078a8bb Luca Barbieri 2010-02-24 233 INIT(0);
25a304f277ad70 Luca Barbieri 2010-03-01 234 BUG_ON(atomic64_inc_not_zero(&v));
86a8938078a8bb Luca Barbieri 2010-02-24 235 BUG_ON(v.counter != r);
86a8938078a8bb Luca Barbieri 2010-02-24 236
86a8938078a8bb Luca Barbieri 2010-02-24 237 INIT(-one);
25a304f277ad70 Luca Barbieri 2010-03-01 238 BUG_ON(!atomic64_inc_not_zero(&v));
86a8938078a8bb Luca Barbieri 2010-02-24 239 r += one;
86a8938078a8bb Luca Barbieri 2010-02-24 240 BUG_ON(v.counter != r);
ffba19ccae8d98 Michael Ellerman 2017-07-14 241
ffba19ccae8d98 Michael Ellerman 2017-07-14 242 /* Confirm the return value fits in an
int, even if the value doesn't */
ffba19ccae8d98 Michael Ellerman 2017-07-14 243 INIT(v3);
ffba19ccae8d98 Michael Ellerman 2017-07-14 244 r_int = atomic64_inc_not_zero(&v);
ffba19ccae8d98 Michael Ellerman 2017-07-14 245 BUG_ON(!r_int);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 246 }
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 247
:::::: The code at line 177 was first introduced by commit
:::::: 978e5a3692c3b674b4c7c412e96835fd996c2ff4 atomics: Add test for atomic operations
with _relaxed variants
:::::: TO: Boqun Feng <boqun.feng(a)gmail.com>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org