[avpatel:riscv_pmem_v1 37/38] arch/riscv/mm/cacheflush.c:100:2: error: call to undeclared function 'for_each_of_cpu_node'; ISO C99 and later do not support implicit function declarations

From: kernel test robot
Date: Sat Aug 27 2022 - 08:10:57 EST


tree: https://github.com/avpatel/linux.git riscv_pmem_v1
head: cfb27bb3561d70cd5e00b71c5f817b7c4452ae71
commit: 2590647b8e45549f88977f6c2d87b9740e3df722 [37/38] RISC-V: Move riscv_init_cbom_blocksize() to cacheflush.c
config: riscv-randconfig-r042-20220825 (https://download.01.org/0day-ci/archive/20220827/202208272028.IwrNZ0Ur-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project a2100daf12fb980a29fd1a9c85ccf8eaaaf79730)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/avpatel/linux/commit/2590647b8e45549f88977f6c2d87b9740e3df722
git remote add avpatel https://github.com/avpatel/linux.git
git fetch --no-tags avpatel riscv_pmem_v1
git checkout 2590647b8e45549f88977f6c2d87b9740e3df722
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> arch/riscv/mm/cacheflush.c:100:2: error: call to undeclared function 'for_each_of_cpu_node'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
for_each_of_cpu_node(node) {
^
>> arch/riscv/mm/cacheflush.c:100:28: error: expected ';' after expression
for_each_of_cpu_node(node) {
^
;
>> arch/riscv/mm/cacheflush.c:106:4: error: 'continue' statement not in loop statement
continue;
^
arch/riscv/mm/cacheflush.c:109:4: error: 'continue' statement not in loop statement
continue;
^
>> arch/riscv/mm/cacheflush.c:112:9: error: call to undeclared function 'of_property_read_u32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
ret = of_property_read_u32(node, "riscv,cbom-block-size", &val);
^
arch/riscv/mm/cacheflush.c:114:4: error: 'continue' statement not in loop statement
continue;
^
6 errors generated.


vim +/for_each_of_cpu_node +100 arch/riscv/mm/cacheflush.c

92
93 #ifdef CONFIG_RISCV_ISA_ZICBOM
94 void riscv_init_cbom_blocksize(void)
95 {
96 struct device_node *node;
97 int ret;
98 u32 val;
99
> 100 for_each_of_cpu_node(node) {
101 unsigned long hartid;
102 int cbom_hartid;
103
104 ret = riscv_of_processor_hartid(node, &hartid);
105 if (ret)
> 106 continue;
107
108 if (hartid < 0)
109 continue;
110
111 /* set block-size for cbom extension if available */
> 112 ret = of_property_read_u32(node, "riscv,cbom-block-size", &val);

--
0-DAY CI Kernel Test Service
https://01.org/lkp