[tip:sched/core 23/23] kernel/sched/topology.c:17:2: error: 'sched_debug_verbose' undeclared; did you mean 'sched_debug_setup'?
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
head: a1b93fc0377e73dd54f819a993f83291324bb54a
commit: a1b93fc0377e73dd54f819a993f83291324bb54a [23/23] sched/debug: Rename the sched_debug parameter to sched_verbose
config: arc-randconfig-r003-20210416 (attached as .config)
compiler: arceb-elf-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/tip/tip.git/commit/?id=a1...
git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
git fetch --no-tags tip sched/core
git checkout a1b93fc0377e73dd54f819a993f83291324bb54a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arc
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 >>):
kernel/sched/topology.c: In function 'sched_debug_setup':
>> kernel/sched/topology.c:17:2: error: 'sched_debug_verbose' undeclared (first use in this function); did you mean 'sched_debug_setup'?
17 | sched_debug_verbose = true;
| ^~~~~~~~~~~~~~~~~~~
| sched_debug_setup
kernel/sched/topology.c:17:2: note: each undeclared identifier is reported only once for each function it appears in
kernel/sched/topology.c: In function 'sched_debug':
kernel/sched/topology.c:25:9: error: 'sched_debug_verbose' undeclared (first use in this function); did you mean 'sched_debug_setup'?
25 | return sched_debug_verbose;
| ^~~~~~~~~~~~~~~~~~~
| sched_debug_setup
kernel/sched/topology.c: In function 'sched_domain_debug':
kernel/sched/topology.c:134:7: error: 'sched_debug_verbose' undeclared (first use in this function); did you mean 'sched_debug_setup'?
134 | if (!sched_debug_verbose)
| ^~~~~~~~~~~~~~~~~~~
| sched_debug_setup
kernel/sched/topology.c: In function 'build_sched_domains':
kernel/sched/topology.c:2144:12: error: 'sched_debug_verbose' undeclared (first use in this function); did you mean 'sched_debug_setup'?
2144 | if (rq && sched_debug_verbose) {
| ^~~~~~~~~~~~~~~~~~~
| sched_debug_setup
In file included from include/linux/perf_event.h:25,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:85,
from kernel/sched/sched.h:66,
from kernel/sched/topology.c:5:
At top level:
arch/arc/include/asm/perf_event.h:126:23: warning: 'arc_pmu_cache_map' defined but not used [-Wunused-const-variable=]
126 | static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
| ^~~~~~~~~~~~~~~~~
arch/arc/include/asm/perf_event.h:91:27: warning: 'arc_pmu_ev_hw_map' defined but not used [-Wunused-const-variable=]
91 | static const char * const arc_pmu_ev_hw_map[] = {
| ^~~~~~~~~~~~~~~~~
vim +17 kernel/sched/topology.c
14
15 static int __init sched_debug_setup(char *str)
16 {
> 17 sched_debug_verbose = true;
18
19 return 0;
20 }
21 early_param("sched_verbose", sched_debug_setup);
22
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[jonhunter:tegra/for-next 10/13] drivers/gpio/gpio-tegra.c:591:2: error: 'ret' undeclared; did you mean 'net'?
by kernel test robot
tree: https://github.com/jonhunter/linux tegra/for-next
head: 6915f42702bbfded22b4121a42fb2e653b51dfe0
commit: 9396c239c960ba11e731c588c84bde0373a20172 [10/13] Revert "gpio: tegra: Ensure pinctrl input-enable is set for interrupts"
config: sparc-randconfig-s032-20210417 (attached as .config)
compiler: sparc-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-280-g2cd6d34e-dirty
# https://github.com/jonhunter/linux/commit/9396c239c960ba11e731c588c84bde0...
git remote add jonhunter https://github.com/jonhunter/linux
git fetch --no-tags jonhunter tegra/for-next
git checkout 9396c239c960ba11e731c588c84bde0373a20172
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=sparc
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 >>):
drivers/gpio/gpio-tegra.c: In function 'tegra_gpio_irq_request_resources':
>> drivers/gpio/gpio-tegra.c:591:2: error: 'ret' undeclared (first use in this function); did you mean 'net'?
591 | ret = gpiochip_reqres_irq(chip, d->hwirq);
| ^~~
| net
drivers/gpio/gpio-tegra.c:591:2: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpio/gpio-tegra.c:596:1: error: control reaches end of non-void function [-Werror=return-type]
596 | }
| ^
cc1: some warnings being treated as errors
vim +591 drivers/gpio/gpio-tegra.c
66fecef5bde078 Thierry Reding 2020-11-27 583
66fecef5bde078 Thierry Reding 2020-11-27 584 static int tegra_gpio_irq_request_resources(struct irq_data *d)
66fecef5bde078 Thierry Reding 2020-11-27 585 {
66fecef5bde078 Thierry Reding 2020-11-27 586 struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
66fecef5bde078 Thierry Reding 2020-11-27 587 struct tegra_gpio_info *tgi = gpiochip_get_data(chip);
66fecef5bde078 Thierry Reding 2020-11-27 588
9396c239c960ba Jon Hunter 2021-04-17 589 tegra_gpio_enable(tgi, d->hwirq);
66fecef5bde078 Thierry Reding 2020-11-27 590
ae9772caf4b5b3 Jon Hunter 2021-02-05 @591 ret = gpiochip_reqres_irq(chip, d->hwirq);
ae9772caf4b5b3 Jon Hunter 2021-02-05 592 if (ret < 0)
ae9772caf4b5b3 Jon Hunter 2021-02-05 593 tegra_gpio_disable(tgi, d->hwirq);
ae9772caf4b5b3 Jon Hunter 2021-02-05 594
ae9772caf4b5b3 Jon Hunter 2021-02-05 595 return ret;
66fecef5bde078 Thierry Reding 2020-11-27 596 }
66fecef5bde078 Thierry Reding 2020-11-27 597
:::::: The code at line 591 was first introduced by commit
:::::: ae9772caf4b5b38fc5f2767ffc2422c68f0d37eb gpio: tegra: Disable the GPIO if requesting IRQ resources fails
:::::: TO: Jon Hunter <jonathanh(a)nvidia.com>
:::::: CC: Jon Hunter <jonathanh(a)nvidia.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[jonhunter:tegra/for-next 10/13] drivers/gpio/gpio-tegra.c:591:2: error: use of undeclared identifier 'ret'
by kernel test robot
tree: https://github.com/jonhunter/linux tegra/for-next
head: 6915f42702bbfded22b4121a42fb2e653b51dfe0
commit: 9396c239c960ba11e731c588c84bde0373a20172 [10/13] Revert "gpio: tegra: Ensure pinctrl input-enable is set for interrupts"
config: arm-randconfig-r001-20210417 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f549176ad976caa3e19edd036df9a7e12770af7c)
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 arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/jonhunter/linux/commit/9396c239c960ba11e731c588c84bde0...
git remote add jonhunter https://github.com/jonhunter/linux
git fetch --no-tags jonhunter tegra/for-next
git checkout 9396c239c960ba11e731c588c84bde0373a20172
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm
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 >>):
>> drivers/gpio/gpio-tegra.c:591:2: error: use of undeclared identifier 'ret'
ret = gpiochip_reqres_irq(chip, d->hwirq);
^
drivers/gpio/gpio-tegra.c:592:6: error: use of undeclared identifier 'ret'
if (ret < 0)
^
drivers/gpio/gpio-tegra.c:595:9: error: use of undeclared identifier 'ret'
return ret;
^
3 errors generated.
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for QCOM_SCM
Depends on (ARM || ARM64) && HAVE_ARM_SMCCC
Selected by
- ARM_QCOM_SPM_CPUIDLE && CPU_IDLE && (ARM || ARM64) && (ARCH_QCOM || COMPILE_TEST && !ARM64 && MMU
vim +/ret +591 drivers/gpio/gpio-tegra.c
66fecef5bde078 Thierry Reding 2020-11-27 583
66fecef5bde078 Thierry Reding 2020-11-27 584 static int tegra_gpio_irq_request_resources(struct irq_data *d)
66fecef5bde078 Thierry Reding 2020-11-27 585 {
66fecef5bde078 Thierry Reding 2020-11-27 586 struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
66fecef5bde078 Thierry Reding 2020-11-27 587 struct tegra_gpio_info *tgi = gpiochip_get_data(chip);
66fecef5bde078 Thierry Reding 2020-11-27 588
9396c239c960ba Jon Hunter 2021-04-17 589 tegra_gpio_enable(tgi, d->hwirq);
66fecef5bde078 Thierry Reding 2020-11-27 590
ae9772caf4b5b3 Jon Hunter 2021-02-05 @591 ret = gpiochip_reqres_irq(chip, d->hwirq);
ae9772caf4b5b3 Jon Hunter 2021-02-05 592 if (ret < 0)
ae9772caf4b5b3 Jon Hunter 2021-02-05 593 tegra_gpio_disable(tgi, d->hwirq);
ae9772caf4b5b3 Jon Hunter 2021-02-05 594
ae9772caf4b5b3 Jon Hunter 2021-02-05 595 return ret;
66fecef5bde078 Thierry Reding 2020-11-27 596 }
66fecef5bde078 Thierry Reding 2020-11-27 597
:::::: The code at line 591 was first introduced by commit
:::::: ae9772caf4b5b38fc5f2767ffc2422c68f0d37eb gpio: tegra: Disable the GPIO if requesting IRQ resources fails
:::::: TO: Jon Hunter <jonathanh(a)nvidia.com>
:::::: CC: Jon Hunter <jonathanh(a)nvidia.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[trace:ftrace/fgraph-multi 34/40] kernel/trace/fgraph.c:613:6: warning: no previous prototype for 'fgraph_init_ops'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git ftrace/fgraph-multi
head: 978dc256bd4d08df876d58b4fa01ba4cb3926242
commit: be13406cc12900ea57d62a9afcc33c4e11a1993f [34/40] function_graph: Have the instances use their own ftrace_ops for filtering
config: i386-randconfig-r035-20210416 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git/c...
git remote add trace https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
git fetch --no-tags trace ftrace/fgraph-multi
git checkout be13406cc12900ea57d62a9afcc33c4e11a1993f
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
kernel/trace/fgraph.c:481:15: warning: no previous prototype for 'ftrace_return_to_handler' [-Wmissing-prototypes]
481 | unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/fgraph.c: In function 'ftrace_return_to_handler':
kernel/trace/fgraph.c:483:27: warning: variable 'ret_stack' set but not used [-Wunused-but-set-variable]
483 | struct ftrace_ret_stack *ret_stack;
| ^~~~~~~~~
kernel/trace/fgraph.c: At top level:
>> kernel/trace/fgraph.c:613:6: warning: no previous prototype for 'fgraph_init_ops' [-Wmissing-prototypes]
613 | void fgraph_init_ops(struct ftrace_ops *dst_ops,
| ^~~~~~~~~~~~~~~
kernel/trace/fgraph.c:633:6: warning: no previous prototype for 'ftrace_graph_sleep_time_control' [-Wmissing-prototypes]
633 | void ftrace_graph_sleep_time_control(bool enable)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/fgraph.c:645:46: error: initialization of 'trace_func_graph_ret_t' {aka 'void (*)(struct ftrace_graph_ret *, struct fgraph_ops *)'} from incompatible pointer type 'void (*)(struct ftrace_graph_ret *)' [-Werror=incompatible-pointer-types]
645 | trace_func_graph_ret_t ftrace_graph_return = ftrace_stub_graph;
| ^~~~~~~~~~~~~~~~~
kernel/trace/fgraph.c: In function 'unregister_ftrace_graph':
kernel/trace/fgraph.c:924:23: error: assignment to 'trace_func_graph_ret_t' {aka 'void (*)(struct ftrace_graph_ret *, struct fgraph_ops *)'} from incompatible pointer type 'void (*)(struct ftrace_graph_ret *)' [-Werror=incompatible-pointer-types]
924 | ftrace_graph_return = ftrace_stub_graph;
| ^
cc1: some warnings being treated as errors
vim +/fgraph_init_ops +613 kernel/trace/fgraph.c
612
> 613 void fgraph_init_ops(struct ftrace_ops *dst_ops,
614 struct ftrace_ops *src_ops)
615 {
616 dst_ops->func = ftrace_stub;
617 dst_ops->flags = FTRACE_OPS_FL_PID | FTRACE_OPS_FL_STUB;
618
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[trace:ftrace/fgraph-multi 32/40] kernel/trace/trace_functions.c:78:2: error: 'ret' undeclared; did you mean 'net'?
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git ftrace/fgraph-multi
head: 978dc256bd4d08df876d58b4fa01ba4cb3926242
commit: 0f2f776e0e938471ac0edd75576b5b5a77603750 [32/40] ftrace: Allow function_graph tracer to be enabled in instances
config: i386-randconfig-r035-20210416 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git/c...
git remote add trace https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
git fetch --no-tags trace ftrace/fgraph-multi
git checkout 0f2f776e0e938471ac0edd75576b5b5a77603750
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
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 >>):
kernel/trace/trace_functions.c: In function 'ftrace_create_function_files':
>> kernel/trace/trace_functions.c:78:2: error: 'ret' undeclared (first use in this function); did you mean 'net'?
78 | ret = allocate_fgraph_ops(tr);
| ^~~
| net
kernel/trace/trace_functions.c:78:2: note: each undeclared identifier is reported only once for each function it appears in
vim +78 kernel/trace/trace_functions.c
64
65 int ftrace_create_function_files(struct trace_array *tr,
66 struct dentry *parent)
67 {
68 /*
69 * The top level array uses the "global_ops", and the files are
70 * created on boot up.
71 */
72 if (tr->flags & TRACE_ARRAY_FL_GLOBAL)
73 return 0;
74
75 if (!tr->ops)
76 return -EINVAL;
77
> 78 ret = allocate_fgraph_ops(tr);
79 if (ret) {
80 kfree(tr->ops);
81 return ret;
82 }
83
84 ftrace_create_filter_files(tr->ops, parent);
85
86 return 0;
87 }
88
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[congwang:sockmap3 2/10] ERROR: modpost: "sock_map_close" [net/unix/unix.ko] undefined!
by kernel test robot
tree: https://github.com/congwang/linux.git sockmap3
head: 16a132a3d687afd78de6ebd70fc641dcd72b82a6
commit: e73442c6fac419ca27e9235dc61de78b5c1964ff [2/10] af_unix: implement ->psock_update_sk_prot()
config: sh-allmodconfig (attached as .config)
compiler: sh4-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/congwang/linux/commit/e73442c6fac419ca27e9235dc61de78b...
git remote add congwang https://github.com/congwang/linux.git
git fetch --no-tags congwang sockmap3
git checkout e73442c6fac419ca27e9235dc61de78b5c1964ff
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=sh
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 >>, old ones prefixed by <<):
>> ERROR: modpost: "sock_map_close" [net/unix/unix.ko] undefined!
ERROR: modpost: "remap_vmalloc_range_partial" [samples/vfio-mdev/mdpy.ko] undefined!
ERROR: modpost: "__delay" [drivers/net/mdio/mdio-cavium.ko] undefined!
ERROR: modpost: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!
ERROR: modpost: "__umoddi3" [fs/btrfs/btrfs.ko] undefined!
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
Selected by
- SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
- SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[csky-linux:v5.12-rc4-riscv-atomic-arch-v2 4/5] lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_and_acquire'; did you mean 'atomic64_fetch_add_acquire'?
by kernel test robot
tree: https://github.com/c-sky/csky-linux v5.12-rc4-riscv-atomic-arch-v2
head: ba97cb573d12789863827bd2af6f3ccd6fdcaf19
commit: 088b40fee0c85e4837c2208142a4d8d4825395a5 [4/5] locking/atomics: Fixup GENERIC_ATOMIC64 conflict with atomic-arch-fallback.h
config: arc-randconfig-r033-20210416 (attached as .config)
compiler: arc-elf-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/088b40fee0c85e4837c2208142a4d8...
git remote add csky-linux https://github.com/c-sky/csky-linux
git fetch --no-tags csky-linux v5.12-rc4-riscv-atomic-arch-v2
git checkout 088b40fee0c85e4837c2208142a4d8d4825395a5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arc
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 include/linux/init.h:5,
from lib/atomic64_test.c:10:
lib/atomic64_test.c: In function 'test_atomic64':
>> lib/atomic64_test.c:49:9: error: implicit declaration of function 'atomic64_sub_return_acquire'; did you mean 'atomic_sub_return_acquire'? [-Werror=implicit-function-declaration]
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:49:2: note: in expansion of macro 'BUG_ON'
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_RETURN'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:64:2: note: in expansion of macro 'FAMILY_TEST'
64 | FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:177:2: note: in expansion of macro 'RETURN_FAMILY_TEST'
177 | RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
| ^~~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:49:9: error: implicit declaration of function 'atomic64_sub_return_release'; did you mean 'atomic_sub_return_release'? [-Werror=implicit-function-declaration]
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:49:2: note: in expansion of macro 'BUG_ON'
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_RETURN'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:64:2: note: in expansion of macro 'FAMILY_TEST'
64 | FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:177:2: note: in expansion of macro 'RETURN_FAMILY_TEST'
177 | RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
| ^~~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:49:9: error: implicit declaration of function 'atomic64_sub_return_relaxed'; did you mean 'atomic_sub_return_relaxed'? [-Werror=implicit-function-declaration]
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:49:2: note: in expansion of macro 'BUG_ON'
49 | BUG_ON(atomic##bit##_##op(val, &v) != r); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_RETURN'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:64:2: note: in expansion of macro 'FAMILY_TEST'
64 | FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:177:2: note: in expansion of macro 'RETURN_FAMILY_TEST'
177 | RETURN_FAMILY_TEST(64, sub_return, -=, onestwos);
| ^~~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_sub_acquire'; did you mean 'atomic_fetch_sub_acquire'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_FETCH'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:182:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
182 | FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_sub_release'; did you mean 'atomic_fetch_sub_release'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_FETCH'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:182:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
182 | FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_sub_relaxed'; did you mean 'atomic_fetch_sub_relaxed'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_FETCH'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:182:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
182 | FETCH_FAMILY_TEST(64, fetch_sub, -=, onestwos);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_or_acquire'; did you mean 'atomic_fetch_or_acquire'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_FETCH'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:185:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
185 | FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_or_release'; did you mean 'atomic_fetch_or_release'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_FETCH'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:185:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
185 | FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_or_relaxed'; did you mean 'atomic_fetch_or_relaxed'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_FETCH'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:185:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
185 | FETCH_FAMILY_TEST(64, fetch_or, |=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_and_acquire'; did you mean 'atomic64_fetch_add_acquire'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_FETCH'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:186:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
186 | FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_and_release'; did you mean 'atomic64_fetch_add_release'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_FETCH'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:186:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
186 | FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_and_relaxed'; did you mean 'atomic64_fetch_add_relaxed'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_FETCH'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:186:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
186 | FETCH_FAMILY_TEST(64, fetch_and, &=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_andnot_acquire'; did you mean 'atomic_fetch_andnot_acquire'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_FETCH'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:187:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
187 | FETCH_FAMILY_TEST(64, fetch_andnot, &= ~, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_andnot_release'; did you mean 'atomic_fetch_andnot_release'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_FETCH'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:187:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
187 | FETCH_FAMILY_TEST(64, fetch_andnot, &= ~, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_andnot_relaxed'; did you mean 'atomic_fetch_andnot_relaxed'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_FETCH'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:187:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
187 | FETCH_FAMILY_TEST(64, fetch_andnot, &= ~, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_xor_acquire'; did you mean 'atomic_fetch_xor_acquire'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_FETCH'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:188:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
188 | FETCH_FAMILY_TEST(64, fetch_xor, ^=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_xor_release'; did you mean 'atomic_fetch_xor_release'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_FETCH'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:188:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
188 | FETCH_FAMILY_TEST(64, fetch_xor, ^=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:58:9: error: implicit declaration of function 'atomic64_fetch_xor_relaxed'; did you mean 'atomic_fetch_xor_relaxed'? [-Werror=implicit-function-declaration]
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:58:2: note: in expansion of macro 'BUG_ON'
58 | BUG_ON(atomic##bit##_##op(val, &v) != v0); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_FETCH'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:69:2: note: in expansion of macro 'FAMILY_TEST'
69 | FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
| ^~~~~~~~~~~
lib/atomic64_test.c:188:2: note: in expansion of macro 'FETCH_FAMILY_TEST'
188 | FETCH_FAMILY_TEST(64, fetch_xor, ^=, v1);
| ^~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_inc_return_acquire'; did you mean 'atomic_inc_return_acquire'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_ARGS'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:94:2: note: in expansion of macro 'FAMILY_TEST'
94 | FAMILY_TEST(TEST_ARGS, bit, inc_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:200:2: note: in expansion of macro 'INC_RETURN_FAMILY_TEST'
200 | INC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_inc_return_release'; did you mean 'atomic_inc_return_release'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_ARGS'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:94:2: note: in expansion of macro 'FAMILY_TEST'
94 | FAMILY_TEST(TEST_ARGS, bit, inc_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:200:2: note: in expansion of macro 'INC_RETURN_FAMILY_TEST'
200 | INC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_inc_return_relaxed'; did you mean 'atomic_inc_return_relaxed'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_ARGS'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:94:2: note: in expansion of macro 'FAMILY_TEST'
94 | FAMILY_TEST(TEST_ARGS, bit, inc_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:200:2: note: in expansion of macro 'INC_RETURN_FAMILY_TEST'
200 | INC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_dec_return_acquire'; did you mean 'atomic_dec_return_acquire'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:39:2: note: in expansion of macro 'TEST_ARGS'
39 | test(bit, op##_acquire, ##args); \
| ^~~~
lib/atomic64_test.c:100:2: note: in expansion of macro 'FAMILY_TEST'
100 | FAMILY_TEST(TEST_ARGS, bit, dec_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:201:2: note: in expansion of macro 'DEC_RETURN_FAMILY_TEST'
201 | DEC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_dec_return_release'; did you mean 'atomic_dec_return_release'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:40:2: note: in expansion of macro 'TEST_ARGS'
40 | test(bit, op##_release, ##args); \
| ^~~~
lib/atomic64_test.c:100:2: note: in expansion of macro 'FAMILY_TEST'
100 | FAMILY_TEST(TEST_ARGS, bit, dec_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:201:2: note: in expansion of macro 'DEC_RETURN_FAMILY_TEST'
201 | DEC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_dec_return_relaxed'; did you mean 'atomic_dec_return_relaxed'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:41:2: note: in expansion of macro 'TEST_ARGS'
41 | test(bit, op##_relaxed, ##args); \
| ^~~~
lib/atomic64_test.c:100:2: note: in expansion of macro 'FAMILY_TEST'
100 | FAMILY_TEST(TEST_ARGS, bit, dec_return, \
| ^~~~~~~~~~~
lib/atomic64_test.c:201:2: note: in expansion of macro 'DEC_RETURN_FAMILY_TEST'
201 | DEC_RETURN_FAMILY_TEST(64, v0);
| ^~~~~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c:207:9: error: implicit declaration of function 'atomic64_add_unless'; did you mean 'atomic_add_unless'? [-Werror=implicit-function-declaration]
207 | BUG_ON(atomic64_add_unless(&v, one, v0));
| ^~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
lib/atomic64_test.c:207:2: note: in expansion of macro 'BUG_ON'
207 | BUG_ON(atomic64_add_unless(&v, one, v0));
| ^~~~~~
lib/atomic64_test.c:229:10: error: implicit declaration of function 'atomic64_inc_not_zero'; did you mean 'atomic_inc_not_zero'? [-Werror=implicit-function-declaration]
229 | BUG_ON(!atomic64_inc_not_zero(&v));
vim +58 lib/atomic64_test.c
978e5a3692c3b6 Boqun Feng 2015-11-04 43
978e5a3692c3b6 Boqun Feng 2015-11-04 44 #define TEST_RETURN(bit, op, c_op, val) \
978e5a3692c3b6 Boqun Feng 2015-11-04 45 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 46 atomic##bit##_set(&v, v0); \
978e5a3692c3b6 Boqun Feng 2015-11-04 47 r = v0; \
978e5a3692c3b6 Boqun Feng 2015-11-04 48 r c_op val; \
978e5a3692c3b6 Boqun Feng 2015-11-04 @49 BUG_ON(atomic##bit##_##op(val, &v) != r); \
978e5a3692c3b6 Boqun Feng 2015-11-04 50 BUG_ON(atomic##bit##_read(&v) != r); \
978e5a3692c3b6 Boqun Feng 2015-11-04 51 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 52
28aa2bda2211f4 Peter Zijlstra 2016-04-18 53 #define TEST_FETCH(bit, op, c_op, val) \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 54 do { \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 55 atomic##bit##_set(&v, v0); \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 56 r = v0; \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 57 r c_op val; \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 @58 BUG_ON(atomic##bit##_##op(val, &v) != v0); \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 59 BUG_ON(atomic##bit##_read(&v) != r); \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 60 } while (0)
28aa2bda2211f4 Peter Zijlstra 2016-04-18 61
978e5a3692c3b6 Boqun Feng 2015-11-04 62 #define RETURN_FAMILY_TEST(bit, op, c_op, val) \
978e5a3692c3b6 Boqun Feng 2015-11-04 63 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 64 FAMILY_TEST(TEST_RETURN, bit, op, c_op, val); \
978e5a3692c3b6 Boqun Feng 2015-11-04 65 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 66
28aa2bda2211f4 Peter Zijlstra 2016-04-18 67 #define FETCH_FAMILY_TEST(bit, op, c_op, val) \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 68 do { \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 69 FAMILY_TEST(TEST_FETCH, bit, op, c_op, val); \
28aa2bda2211f4 Peter Zijlstra 2016-04-18 70 } while (0)
28aa2bda2211f4 Peter Zijlstra 2016-04-18 71
978e5a3692c3b6 Boqun Feng 2015-11-04 72 #define TEST_ARGS(bit, op, init, ret, expect, args...) \
978e5a3692c3b6 Boqun Feng 2015-11-04 73 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 74 atomic##bit##_set(&v, init); \
978e5a3692c3b6 Boqun Feng 2015-11-04 @75 BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
978e5a3692c3b6 Boqun Feng 2015-11-04 76 BUG_ON(atomic##bit##_read(&v) != expect); \
978e5a3692c3b6 Boqun Feng 2015-11-04 77 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 78
978e5a3692c3b6 Boqun Feng 2015-11-04 79 #define XCHG_FAMILY_TEST(bit, init, new) \
978e5a3692c3b6 Boqun Feng 2015-11-04 80 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 81 FAMILY_TEST(TEST_ARGS, bit, xchg, init, init, new, new); \
978e5a3692c3b6 Boqun Feng 2015-11-04 82 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 83
978e5a3692c3b6 Boqun Feng 2015-11-04 84 #define CMPXCHG_FAMILY_TEST(bit, init, new, wrong) \
978e5a3692c3b6 Boqun Feng 2015-11-04 85 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 86 FAMILY_TEST(TEST_ARGS, bit, cmpxchg, \
978e5a3692c3b6 Boqun Feng 2015-11-04 87 init, init, new, init, new); \
978e5a3692c3b6 Boqun Feng 2015-11-04 88 FAMILY_TEST(TEST_ARGS, bit, cmpxchg, \
978e5a3692c3b6 Boqun Feng 2015-11-04 89 init, init, init, wrong, new); \
978e5a3692c3b6 Boqun Feng 2015-11-04 90 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 91
978e5a3692c3b6 Boqun Feng 2015-11-04 92 #define INC_RETURN_FAMILY_TEST(bit, i) \
978e5a3692c3b6 Boqun Feng 2015-11-04 93 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 94 FAMILY_TEST(TEST_ARGS, bit, inc_return, \
978e5a3692c3b6 Boqun Feng 2015-11-04 95 i, (i) + one, (i) + one); \
978e5a3692c3b6 Boqun Feng 2015-11-04 96 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 97
978e5a3692c3b6 Boqun Feng 2015-11-04 98 #define DEC_RETURN_FAMILY_TEST(bit, i) \
978e5a3692c3b6 Boqun Feng 2015-11-04 99 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 100 FAMILY_TEST(TEST_ARGS, bit, dec_return, \
978e5a3692c3b6 Boqun Feng 2015-11-04 101 i, (i) - one, (i) - one); \
978e5a3692c3b6 Boqun Feng 2015-11-04 102 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 103
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 104 static __init void test_atomic(void)
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 105 {
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 106 int v0 = 0xaaa31337;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 107 int v1 = 0xdeadbeef;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 108 int onestwos = 0x11112222;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 109 int one = 1;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 110
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 111 atomic_t v;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 112 int r;
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 113
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 114 TEST(, add, +=, onestwos);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 115 TEST(, add, +=, -one);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 116 TEST(, sub, -=, onestwos);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 117 TEST(, sub, -=, -one);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 118 TEST(, or, |=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 119 TEST(, and, &=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 120 TEST(, xor, ^=, v1);
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 121 TEST(, andnot, &= ~, v1);
978e5a3692c3b6 Boqun Feng 2015-11-04 122
978e5a3692c3b6 Boqun Feng 2015-11-04 123 RETURN_FAMILY_TEST(, add_return, +=, onestwos);
978e5a3692c3b6 Boqun Feng 2015-11-04 124 RETURN_FAMILY_TEST(, add_return, +=, -one);
978e5a3692c3b6 Boqun Feng 2015-11-04 125 RETURN_FAMILY_TEST(, sub_return, -=, onestwos);
978e5a3692c3b6 Boqun Feng 2015-11-04 126 RETURN_FAMILY_TEST(, sub_return, -=, -one);
978e5a3692c3b6 Boqun Feng 2015-11-04 127
28aa2bda2211f4 Peter Zijlstra 2016-04-18 128 FETCH_FAMILY_TEST(, fetch_add, +=, onestwos);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 129 FETCH_FAMILY_TEST(, fetch_add, +=, -one);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 130 FETCH_FAMILY_TEST(, fetch_sub, -=, onestwos);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 131 FETCH_FAMILY_TEST(, fetch_sub, -=, -one);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 132
28aa2bda2211f4 Peter Zijlstra 2016-04-18 133 FETCH_FAMILY_TEST(, fetch_or, |=, v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 134 FETCH_FAMILY_TEST(, fetch_and, &=, v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 135 FETCH_FAMILY_TEST(, fetch_andnot, &= ~, v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 136 FETCH_FAMILY_TEST(, fetch_xor, ^=, v1);
28aa2bda2211f4 Peter Zijlstra 2016-04-18 137
978e5a3692c3b6 Boqun Feng 2015-11-04 138 INC_RETURN_FAMILY_TEST(, v0);
978e5a3692c3b6 Boqun Feng 2015-11-04 139 DEC_RETURN_FAMILY_TEST(, v0);
978e5a3692c3b6 Boqun Feng 2015-11-04 140
978e5a3692c3b6 Boqun Feng 2015-11-04 141 XCHG_FAMILY_TEST(, v0, v1);
978e5a3692c3b6 Boqun Feng 2015-11-04 142 CMPXCHG_FAMILY_TEST(, v0, v1, onestwos);
978e5a3692c3b6 Boqun Feng 2015-11-04 143
41b9e9fcc1c44b Peter Zijlstra 2015-07-13 144 }
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 58 was first introduced by commit
:::::: 28aa2bda2211f4327d83b44a4f917b4a061b1c56 locking/atomic: Implement atomic{,64,_long}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
:::::: TO: Peter Zijlstra <peterz(a)infradead.org>
:::::: 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
1 year, 5 months
[djwong-xfs:vectorized-scrub 154/306] xfs_inode_util.c:undefined reference to `atomic64_set_386'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub
head: 3506ef55d770f108fa68aeb95268af368da441af
commit: d26cd42dafa1ca0a389832990a8c38c2585bcec4 [154/306] xfs: hoist inode allocation function
config: um-randconfig-r004-20210416 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/comm...
git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
git fetch --no-tags djwong-xfs vectorized-scrub
git checkout d26cd42dafa1ca0a389832990a8c38c2585bcec4
# save the attached .config to linux build tree
make W=1 W=1 ARCH=um
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 >>):
pids.c:(.text+0x108): undefined reference to `atomic64_set_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_cancel.constprop.0':
pids.c:(.text+0x127): undefined reference to `atomic64_add_return_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_cancel_attach':
pids.c:(.text+0x19c): undefined reference to `atomic64_add_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_can_fork':
pids.c:(.text+0x24f): undefined reference to `atomic64_add_return_386'
/usr/bin/ld: pids.c:(.text+0x25e): undefined reference to `atomic64_read_386'
/usr/bin/ld: pids.c:(.text+0x2a9): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_css_alloc':
pids.c:(.text+0x34d): undefined reference to `atomic64_set_386'
/usr/bin/ld: pids.c:(.text+0x35d): undefined reference to `atomic64_set_386'
/usr/bin/ld: pids.c:(.text+0x36a): undefined reference to `atomic64_set_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_events_show':
pids.c:(.text+0x388): undefined reference to `atomic64_read_386'
/usr/bin/ld: kernel/cgroup/pids.o: in function `pids_can_attach':
pids.c:(.text+0x3dc): undefined reference to `atomic64_add_386'
/usr/bin/ld: kernel/trace/trace_clock.o: in function `trace_clock_counter':
trace_clock.c:(.text+0xd2): undefined reference to `atomic64_add_return_386'
/usr/bin/ld: fs/ext4/balloc.o: in function `ext4_has_free_clusters':
balloc.c:(.text+0x3f): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/dir.o: in function `inode_query_iversion':
dir.c:(.text+0xb9): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xe8): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/dir.o: in function `ext4_dx_readdir':
dir.c:(.text+0x484): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/dir.o: in function `ext4_dir_llseek':
dir.c:(.text+0x691): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/dir.o: in function `ext4_readdir':
dir.c:(.text+0xe0f): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/ialloc.o: in function `get_orlov_stats':
ialloc.c:(.text+0x4eb): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/inline.o: in function `ext4_add_dirent_to_inline.isra.0':
inline.c:(.text+0xe5d): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0xe95): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inline.o: in function `ext4_read_inline_dir':
inline.c:(.text+0x2e04): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0x2f5e): undefined reference to `atomic64_read_386'
/usr/bin/ld: inline.c:(.text+0x2f8b): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inode.o: in function `inode_maybe_inc_iversion.constprop.0':
inode.c:(.text+0x1438): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x1473): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/inode.o: in function `ext4_do_update_inode':
inode.c:(.text+0x3f5c): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x3f69): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/ext4/inode.o: in function `__ext4_iget':
inode.c:(.text+0x6b9c): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/ioctl.o: in function `swap_inode_boot_loader':
ioctl.c:(.text+0x13f2): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/namei.o: in function `inode_maybe_inc_iversion.constprop.0':
namei.c:(.text+0x6b2): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x6ed): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext4/resize.o: in function `ext4_update_super':
resize.c:(.text+0x2382): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_update_ref':
xattr.c:(.text+0xc0f): undefined reference to `atomic64_read_386'
/usr/bin/ld: xattr.c:(.text+0xc47): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_iget':
xattr.c:(.text+0x1a39): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext4/xattr.o: in function `ext4_xattr_inode_lookup_create':
xattr.c:(.text+0x2248): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/ext2/dir.o: in function `ext2_commit_chunk':
dir.c:(.text+0x21a): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x25d): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/ext2/dir.o: in function `ext2_readdir':
dir.c:(.text+0x92e): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xbbd): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0xbf2): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/fat/dir.o: in function `fat_remove_entries':
dir.c:(.text+0x2657): undefined reference to `atomic64_read_386'
/usr/bin/ld: dir.c:(.text+0x269a): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/fat/misc.o: in function `fat_update_time':
misc.c:(.text+0x7c5): undefined reference to `atomic64_read_386'
/usr/bin/ld: misc.c:(.text+0x821): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/exfat/inode.o: in function `exfat_build_inode':
inode.c:(.text+0x103e): undefined reference to `atomic64_set_386'
/usr/bin/ld: inode.c:(.text+0x1119): undefined reference to `atomic64_read_386'
/usr/bin/ld: inode.c:(.text+0x1163): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/exfat/namei.o: in function `exfat_d_revalidate':
namei.c:(.text+0x81): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/exfat/namei.o: in function `inode_query_iversion':
namei.c:(.text+0x3c0): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x3ef): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/exfat/namei.o: in function `exfat_find':
namei.c:(.text+0x176b): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x1791): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/exfat/namei.o: in function `inode_inc_iversion':
namei.c:(.text+0x1baf): undefined reference to `atomic64_read_386'
/usr/bin/ld: namei.c:(.text+0x1bea): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_trace.o: in function `trace_event_raw_event_xfs_loggrant_class':
xfs_trace.c:(.text+0x8a03): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0x8a22): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0x8a53): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_trace.o: in function `trace_event_raw_event_xfs_log_assign_tail_lsn':
xfs_trace.c:(.text+0x8c5c): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trace.c:(.text+0x8c6d): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_inode_buf.o:xfs_inode_buf.c:(.text+0x7fd): more undefined references to `atomic64_read_386' follow
/usr/bin/ld: fs/xfs/libxfs/xfs_inode_buf.o: in function `xfs_inode_from_disk':
xfs_inode_buf.c:(.text+0x14a3): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_inode_util.o: in function `xfs_inode_init':
>> xfs_inode_util.c:(.text+0x754): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/libxfs/xfs_trans_inode.o: in function `xfs_trans_log_inode':
xfs_trans_inode.c:(.text+0x377): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_trans_inode.c:(.text+0x3d0): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_icache.o: in function `xfs_iget_recycle':
xfs_icache.c:(.text+0xa42): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_icache.c:(.text+0xab1): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_iops.o: in function `xfs_vn_update_time':
xfs_iops.c:(.text+0xa82): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_iops.c:(.text+0xae0): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `write_grant_head_show':
xfs_sysfs.c:(.text+0x36e): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `reserve_grant_head_show':
xfs_sysfs.c:(.text+0x397): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_sysfs.o: in function `log_tail_lsn_show':
xfs_sysfs.c:(.text+0x3c0): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_add_space':
xfs_log.c:(.text+0x2d): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x79): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_sub_space':
xfs_log.c:(.text+0x2a0): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x2dc): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_space_left':
xfs_log.c:(.text+0x3cf): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x3e3): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_verify_grant_tail':
xfs_log.c:(.text+0x548): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x557): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_head_init':
xfs_log.c:(.text+0xa4a): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_alloc_log':
xfs_log.c:(.text+0x1398): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log.c:(.text+0x13a3): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_assign_tail_lsn_locked':
xfs_log.c:(.text+0x1d16): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x1d76): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_grant_push_threshold':
xfs_log.c:(.text+0x1f93): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x1fbd): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log.o: in function `xlog_state_do_callback':
xfs_log.c:(.text+0x27a2): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log.c:(.text+0x2823): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_inode_item.o: in function `xfs_inode_item_format':
xfs_inode_item.c:(.text+0x1002): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_set_state':
xfs_log_recover.c:(.text+0x1a5): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x1bf): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x1de): undefined reference to `atomic64_set_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x1fd): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_check_unmount_rec':
xfs_log_recover.c:(.text+0x31d7): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/xfs/xfs_log_recover.o:xfs_log_recover.c:(.text+0x31ed): more undefined references to `atomic64_set_386' follow
/usr/bin/ld: fs/xfs/xfs_log_recover.o: in function `xlog_find_tail':
xfs_log_recover.c:(.text+0x4b4e): undefined reference to `atomic64_read_386'
/usr/bin/ld: xfs_log_recover.c:(.text+0x4c24): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_inode_add_blocks':
inode.c:(.text+0x5be): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_inode_sub_blocks':
inode.c:(.text+0x605): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_new_inode':
inode.c:(.text+0x782): undefined reference to `atomic64_inc_386'
/usr/bin/ld: fs/nilfs2/inode.o: in function `nilfs_evict_inode':
inode.c:(.text+0x1b2c): undefined reference to `atomic64_dec_386'
/usr/bin/ld: fs/nilfs2/the_nilfs.o: in function `nilfs_find_or_create_root':
the_nilfs.c:(.text+0x1668): undefined reference to `atomic64_set_386'
/usr/bin/ld: the_nilfs.c:(.text+0x1670): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/nilfs2/segment.o: in function `nilfs_segctor_do_construct':
segment.c:(.text+0x3d84): undefined reference to `atomic64_read_386'
/usr/bin/ld: segment.c:(.text+0x3d99): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/nilfs2/ifile.o: in function `nilfs_ifile_count_free_inodes':
ifile.c:(.text+0x311): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/btrfs/ctree.o: in function `__tree_mod_log_insert':
ctree.c:(.text+0x92e): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: fs/btrfs/ctree.o: in function `btrfs_get_tree_mod_seq':
ctree.c:(.text+0x30ce): undefined reference to `atomic64_inc_return_386'
/usr/bin/ld: fs/btrfs/transaction.o: in function `join_transaction':
transaction.c:(.text+0xd59): undefined reference to `atomic64_set_386'
/usr/bin/ld: fs/btrfs/xattr.o: in function `inode_maybe_inc_iversion.constprop.0':
xattr.c:(.text+0x71): undefined reference to `atomic64_read_386'
/usr/bin/ld: xattr.c:(.text+0xac): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/btrfs/volumes.o: in function `create_chunk':
volumes.c:(.text+0x37a7): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_remove_chunk':
volumes.c:(.text+0x5a0d): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_shrink_device':
volumes.c:(.text+0x7b77): undefined reference to `atomic64_sub_386'
/usr/bin/ld: volumes.c:(.text+0x808a): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `btrfs_init_new_device':
volumes.c:(.text+0xcb52): undefined reference to `atomic64_add_386'
/usr/bin/ld: volumes.c:(.text+0xd05f): undefined reference to `atomic64_sub_386'
/usr/bin/ld: fs/btrfs/volumes.o: in function `read_one_dev':
volumes.c:(.text+0xdc36): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/ioctl.o: in function `inode_inc_iversion':
ioctl.c:(.text+0x233e): undefined reference to `atomic64_read_386'
/usr/bin/ld: ioctl.c:(.text+0x2379): undefined reference to `cmpxchg8b_emu'
/usr/bin/ld: fs/btrfs/tree-log.o: in function `fill_inode_item':
tree-log.c:(.text+0x2bf8): undefined reference to `atomic64_read_386'
/usr/bin/ld: fs/btrfs/free-space-cache.o: in function `btrfs_find_space_for_alloc':
free-space-cache.c:(.text+0x665f): undefined reference to `atomic64_add_386'
/usr/bin/ld: free-space-cache.c:(.text+0x66b1): undefined reference to `atomic64_add_386'
/usr/bin/ld: fs/btrfs/free-space-cache.o: in function `btrfs_alloc_from_cluster':
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for LOCKDEP
Depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && (FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86)
Selected by
- DEBUG_LOCK_ALLOC && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[csky-linux:v5.12-rc4-riscv-atomic-arch-v2 4/5] include/linux/atomic-fallback.h:1434:1: error: static declaration of 'atomic64_add_return' follows non-static declaration
by kernel test robot
tree: https://github.com/c-sky/csky-linux v5.12-rc4-riscv-atomic-arch-v2
head: ba97cb573d12789863827bd2af6f3ccd6fdcaf19
commit: 088b40fee0c85e4837c2208142a4d8d4825395a5 [4/5] locking/atomics: Fixup GENERIC_ATOMIC64 conflict with atomic-arch-fallback.h
config: sparc64-randconfig-r035-20210416 (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/088b40fee0c85e4837c2208142a4d8...
git remote add csky-linux https://github.com/c-sky/csky-linux
git fetch --no-tags csky-linux v5.12-rc4-riscv-atomic-arch-v2
git checkout 088b40fee0c85e4837c2208142a4d8d4825395a5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=sparc64
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 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,
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:135:1: note: previous definition of 'atomic64_inc_and_test' was here
135 | atomic64_inc_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:2467:1: error: redefinition of 'atomic64_add_negative'
2467 | atomic64_add_negative(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:141:1: note: previous definition of 'atomic64_add_negative' was here
141 | atomic64_add_negative(s64 i, atomic64_t *v)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from arch/sparc/vdso/vdso32/vclock_gettime.c:22:
arch/sparc/vdso/vdso32/../vclock_gettime.c:254:1: warning: no previous prototype for '__vdso_clock_gettime' [-Wmissing-prototypes]
254 | __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
| ^~~~~~~~~~~~~~~~~~~~
arch/sparc/vdso/vdso32/../vclock_gettime.c:282:1: warning: no previous prototype for '__vdso_clock_gettime_stick' [-Wmissing-prototypes]
282 | __vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/sparc/vdso/vdso32/../vclock_gettime.c:307:1: warning: no previous prototype for '__vdso_gettimeofday' [-Wmissing-prototypes]
307 | __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
| ^~~~~~~~~~~~~~~~~~~
arch/sparc/vdso/vdso32/../vclock_gettime.c:343:1: warning: no previous prototype for '__vdso_gettimeofday_stick' [-Wmissing-prototypes]
343 | __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
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
9fa45070a2e59a Mark Rutland 2018-09-04 1492 #endif /* atomic64_fetch_add_relaxed */
9fa45070a2e59a Mark Rutland 2018-09-04 1493
5faafd5685764e Peter Zijlstra 2020-06-25 1494 #define arch_atomic64_sub atomic64_sub
5faafd5685764e Peter Zijlstra 2020-06-25 1495
5faafd5685764e Peter Zijlstra 2020-06-25 1496 #define arch_atomic64_sub_return atomic64_sub_return
5faafd5685764e Peter Zijlstra 2020-06-25 1497 #define arch_atomic64_sub_return_acquire atomic64_sub_return_acquire
5faafd5685764e Peter Zijlstra 2020-06-25 1498 #define arch_atomic64_sub_return_release atomic64_sub_return_release
5faafd5685764e Peter Zijlstra 2020-06-25 1499 #define arch_atomic64_sub_return_relaxed atomic64_sub_return_relaxed
5faafd5685764e Peter Zijlstra 2020-06-25 1500
9fa45070a2e59a Mark Rutland 2018-09-04 1501 #ifndef atomic64_sub_return_relaxed
9fa45070a2e59a Mark Rutland 2018-09-04 1502 #define atomic64_sub_return_acquire atomic64_sub_return
9fa45070a2e59a Mark Rutland 2018-09-04 1503 #define atomic64_sub_return_release atomic64_sub_return
9fa45070a2e59a Mark Rutland 2018-09-04 1504 #define atomic64_sub_return_relaxed atomic64_sub_return
9fa45070a2e59a Mark Rutland 2018-09-04 1505 #else /* atomic64_sub_return_relaxed */
9fa45070a2e59a Mark Rutland 2018-09-04 1506
9fa45070a2e59a Mark Rutland 2018-09-04 1507 #ifndef atomic64_sub_return_acquire
765dcd209947e7 Marco Elver 2019-11-26 1508 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1509 atomic64_sub_return_acquire(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1510 {
9fa45070a2e59a Mark Rutland 2018-09-04 1511 s64 ret = atomic64_sub_return_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1512 __atomic_acquire_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1513 return ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1514 }
9fa45070a2e59a Mark Rutland 2018-09-04 1515 #define atomic64_sub_return_acquire atomic64_sub_return_acquire
9fa45070a2e59a Mark Rutland 2018-09-04 1516 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1517
9fa45070a2e59a Mark Rutland 2018-09-04 1518 #ifndef atomic64_sub_return_release
765dcd209947e7 Marco Elver 2019-11-26 1519 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1520 atomic64_sub_return_release(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1521 {
9fa45070a2e59a Mark Rutland 2018-09-04 1522 __atomic_release_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1523 return atomic64_sub_return_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1524 }
9fa45070a2e59a Mark Rutland 2018-09-04 1525 #define atomic64_sub_return_release atomic64_sub_return_release
9fa45070a2e59a Mark Rutland 2018-09-04 1526 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1527
9fa45070a2e59a Mark Rutland 2018-09-04 1528 #ifndef atomic64_sub_return
765dcd209947e7 Marco Elver 2019-11-26 1529 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1530 atomic64_sub_return(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1531 {
9fa45070a2e59a Mark Rutland 2018-09-04 1532 s64 ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1533 __atomic_pre_full_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1534 ret = atomic64_sub_return_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1535 __atomic_post_full_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1536 return ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1537 }
9fa45070a2e59a Mark Rutland 2018-09-04 1538 #define atomic64_sub_return atomic64_sub_return
9fa45070a2e59a Mark Rutland 2018-09-04 1539 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1540
9fa45070a2e59a Mark Rutland 2018-09-04 1541 #endif /* atomic64_sub_return_relaxed */
9fa45070a2e59a Mark Rutland 2018-09-04 1542
5faafd5685764e Peter Zijlstra 2020-06-25 1543 #define arch_atomic64_fetch_sub atomic64_fetch_sub
5faafd5685764e Peter Zijlstra 2020-06-25 1544 #define arch_atomic64_fetch_sub_acquire atomic64_fetch_sub_acquire
5faafd5685764e Peter Zijlstra 2020-06-25 1545 #define arch_atomic64_fetch_sub_release atomic64_fetch_sub_release
5faafd5685764e Peter Zijlstra 2020-06-25 1546 #define arch_atomic64_fetch_sub_relaxed atomic64_fetch_sub_relaxed
5faafd5685764e Peter Zijlstra 2020-06-25 1547
9fa45070a2e59a Mark Rutland 2018-09-04 1548 #ifndef atomic64_fetch_sub_relaxed
9fa45070a2e59a Mark Rutland 2018-09-04 1549 #define atomic64_fetch_sub_acquire atomic64_fetch_sub
9fa45070a2e59a Mark Rutland 2018-09-04 1550 #define atomic64_fetch_sub_release atomic64_fetch_sub
9fa45070a2e59a Mark Rutland 2018-09-04 1551 #define atomic64_fetch_sub_relaxed atomic64_fetch_sub
9fa45070a2e59a Mark Rutland 2018-09-04 1552 #else /* atomic64_fetch_sub_relaxed */
9fa45070a2e59a Mark Rutland 2018-09-04 1553
9fa45070a2e59a Mark Rutland 2018-09-04 1554 #ifndef atomic64_fetch_sub_acquire
765dcd209947e7 Marco Elver 2019-11-26 1555 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1556 atomic64_fetch_sub_acquire(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1557 {
9fa45070a2e59a Mark Rutland 2018-09-04 1558 s64 ret = atomic64_fetch_sub_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1559 __atomic_acquire_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1560 return ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1561 }
9fa45070a2e59a Mark Rutland 2018-09-04 1562 #define atomic64_fetch_sub_acquire atomic64_fetch_sub_acquire
9fa45070a2e59a Mark Rutland 2018-09-04 1563 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1564
9fa45070a2e59a Mark Rutland 2018-09-04 1565 #ifndef atomic64_fetch_sub_release
765dcd209947e7 Marco Elver 2019-11-26 1566 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1567 atomic64_fetch_sub_release(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1568 {
9fa45070a2e59a Mark Rutland 2018-09-04 1569 __atomic_release_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1570 return atomic64_fetch_sub_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1571 }
9fa45070a2e59a Mark Rutland 2018-09-04 1572 #define atomic64_fetch_sub_release atomic64_fetch_sub_release
9fa45070a2e59a Mark Rutland 2018-09-04 1573 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1574
9fa45070a2e59a Mark Rutland 2018-09-04 1575 #ifndef atomic64_fetch_sub
765dcd209947e7 Marco Elver 2019-11-26 1576 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 1577 atomic64_fetch_sub(s64 i, atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1578 {
9fa45070a2e59a Mark Rutland 2018-09-04 1579 s64 ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1580 __atomic_pre_full_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1581 ret = atomic64_fetch_sub_relaxed(i, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1582 __atomic_post_full_fence();
9fa45070a2e59a Mark Rutland 2018-09-04 1583 return ret;
9fa45070a2e59a Mark Rutland 2018-09-04 1584 }
9fa45070a2e59a Mark Rutland 2018-09-04 1585 #define atomic64_fetch_sub atomic64_fetch_sub
9fa45070a2e59a Mark Rutland 2018-09-04 1586 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1587
9fa45070a2e59a Mark Rutland 2018-09-04 1588 #endif /* atomic64_fetch_sub_relaxed */
9fa45070a2e59a Mark Rutland 2018-09-04 1589
5faafd5685764e Peter Zijlstra 2020-06-25 1590 #define arch_atomic64_inc atomic64_inc
5faafd5685764e Peter Zijlstra 2020-06-25 1591
9fa45070a2e59a Mark Rutland 2018-09-04 1592 #ifndef atomic64_inc
765dcd209947e7 Marco Elver 2019-11-26 1593 static __always_inline void
9fa45070a2e59a Mark Rutland 2018-09-04 @1594 atomic64_inc(atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1595 {
9fa45070a2e59a Mark Rutland 2018-09-04 1596 atomic64_add(1, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1597 }
9fa45070a2e59a Mark Rutland 2018-09-04 1598 #define atomic64_inc atomic64_inc
9fa45070a2e59a Mark Rutland 2018-09-04 1599 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1600
5faafd5685764e Peter Zijlstra 2020-06-25 1601 #define arch_atomic64_inc_return atomic64_inc_return
5faafd5685764e Peter Zijlstra 2020-06-25 1602 #define arch_atomic64_inc_return_acquire atomic64_inc_return_acquire
5faafd5685764e Peter Zijlstra 2020-06-25 1603 #define arch_atomic64_inc_return_release atomic64_inc_return_release
5faafd5685764e Peter Zijlstra 2020-06-25 1604 #define arch_atomic64_inc_return_relaxed atomic64_inc_return_relaxed
5faafd5685764e Peter Zijlstra 2020-06-25 1605
9fa45070a2e59a Mark Rutland 2018-09-04 1606 #ifndef atomic64_inc_return_relaxed
9fa45070a2e59a Mark Rutland 2018-09-04 1607 #ifdef atomic64_inc_return
9fa45070a2e59a Mark Rutland 2018-09-04 1608 #define atomic64_inc_return_acquire atomic64_inc_return
9fa45070a2e59a Mark Rutland 2018-09-04 1609 #define atomic64_inc_return_release atomic64_inc_return
9fa45070a2e59a Mark Rutland 2018-09-04 1610 #define atomic64_inc_return_relaxed atomic64_inc_return
9fa45070a2e59a Mark Rutland 2018-09-04 1611 #endif /* atomic64_inc_return */
9fa45070a2e59a Mark Rutland 2018-09-04 1612
9fa45070a2e59a Mark Rutland 2018-09-04 1613 #ifndef atomic64_inc_return
765dcd209947e7 Marco Elver 2019-11-26 1614 static __always_inline s64
9fa45070a2e59a Mark Rutland 2018-09-04 @1615 atomic64_inc_return(atomic64_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 1616 {
9fa45070a2e59a Mark Rutland 2018-09-04 1617 return atomic64_add_return(1, v);
9fa45070a2e59a Mark Rutland 2018-09-04 1618 }
9fa45070a2e59a Mark Rutland 2018-09-04 1619 #define atomic64_inc_return atomic64_inc_return
9fa45070a2e59a Mark Rutland 2018-09-04 1620 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 1621
:::::: The code at line 1434 was first introduced by commit
:::::: 9fa45070a2e59a871e1cd3370173369f3a4f61e2 locking/atomics: Switch to generated fallbacks
:::::: TO: Mark Rutland <mark.rutland(a)arm.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
1 year, 5 months