Hi Zqiang, Thank you for the patch! Yet something to improve: [auto build test ERROR on paulmck-rcu/dev] [also build test ERROR on v5.18-rc4 next-20220422] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/intel-lab-lkp/linux/commits/Zqiang/rcu-Add-nocb_cb_kthread-check-to-rcu_is_callbacks_kthread/20220425-162445 base: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev config: arm-randconfig-r026-20220425 (https://download.01.org/0day-ci/archive/20220425/202204251856.LJC9zzoY-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1cddcfdc3c683b393df1a5c9063252eb60e52818) 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/intel-lab-lkp/linux/commit/c909d116f928cbb9de2daf60a572f3f8a81cc4f4 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Zqiang/rcu-Add-nocb_cb_kthread-check-to-rcu_is_callbacks_kthread/20220425-162445 git checkout c909d116f928cbb9de2daf60a572f3f8a81cc4f4 # 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=arm SHELL=/bin/bash kernel/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:318:9: note: expanded from macro '__pcpu_size_call_return' typeof(variable) pscr_ret__; \ ^~~~~~~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:319:22: note: expanded from macro '__pcpu_size_call_return' __verify_pcpu_ptr(&(variable)); \ ^~~~~~~~ include/linux/percpu-defs.h:219:47: note: expanded from macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:320:16: note: expanded from macro '__pcpu_size_call_return' switch(sizeof(variable)) { \ ^~~~~~~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:321:31: note: expanded from macro '__pcpu_size_call_return' case 1: pscr_ret__ = stem##1(variable); break; \ ^~~~~~~~ note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:259:20: note: expanded from macro 'VERIFY_PERCPU_PTR' __verify_pcpu_ptr(__p); \ ^~~ include/linux/percpu-defs.h:219:47: note: expanded from macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:321:31: note: expanded from macro '__pcpu_size_call_return' case 1: pscr_ret__ = stem##1(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:12: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:321:31: note: expanded from macro '__pcpu_size_call_return' case 1: pscr_ret__ = stem##1(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:38: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:3: error: indirection requires pointer operand ('void' invalid) __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:446:2: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:420:28: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:321:23: note: expanded from macro '__pcpu_size_call_return' case 1: pscr_ret__ = stem##1(variable); break; \ ^~~~~~~~~~~~~~~~~ <scratch space>:40:1: note: expanded from here raw_cpu_read_1 ^ include/asm-generic/percpu.h:195:30: note: expanded from macro 'raw_cpu_read_1' #define raw_cpu_read_1(pcp) raw_cpu_generic_read(pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/percpu.h:67:2: note: expanded from macro 'raw_cpu_generic_read' *raw_cpu_ptr(&(pcp)); \ ^~~~~~~~~~~~~~~~~~~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:322:31: note: expanded from macro '__pcpu_size_call_return' case 2: pscr_ret__ = stem##2(variable); break; \ ^~~~~~~~ note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:259:20: note: expanded from macro 'VERIFY_PERCPU_PTR' __verify_pcpu_ptr(__p); \ ^~~ include/linux/percpu-defs.h:219:47: note: expanded from macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:322:31: note: expanded from macro '__pcpu_size_call_return' case 2: pscr_ret__ = stem##2(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:12: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:322:31: note: expanded from macro '__pcpu_size_call_return' case 2: pscr_ret__ = stem##2(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:38: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:3: error: indirection requires pointer operand ('void' invalid) __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:446:2: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:420:28: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:322:23: note: expanded from macro '__pcpu_size_call_return' case 2: pscr_ret__ = stem##2(variable); break; \ ^~~~~~~~~~~~~~~~~ <scratch space>:41:1: note: expanded from here raw_cpu_read_2 ^ include/asm-generic/percpu.h:198:30: note: expanded from macro 'raw_cpu_read_2' #define raw_cpu_read_2(pcp) raw_cpu_generic_read(pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/percpu.h:67:2: note: expanded from macro 'raw_cpu_generic_read' *raw_cpu_ptr(&(pcp)); \ ^~~~~~~~~~~~~~~~~~~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:323:31: note: expanded from macro '__pcpu_size_call_return' case 4: pscr_ret__ = stem##4(variable); break; \ ^~~~~~~~ note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:259:20: note: expanded from macro 'VERIFY_PERCPU_PTR' __verify_pcpu_ptr(__p); \ ^~~ include/linux/percpu-defs.h:219:47: note: expanded from macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:323:31: note: expanded from macro '__pcpu_size_call_return' case 4: pscr_ret__ = stem##4(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:12: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:323:31: note: expanded from macro '__pcpu_size_call_return' case 4: pscr_ret__ = stem##4(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:38: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:3: error: indirection requires pointer operand ('void' invalid) __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:446:2: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:420:28: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:323:23: note: expanded from macro '__pcpu_size_call_return' case 4: pscr_ret__ = stem##4(variable); break; \ ^~~~~~~~~~~~~~~~~ <scratch space>:42:1: note: expanded from here raw_cpu_read_4 ^ include/asm-generic/percpu.h:201:30: note: expanded from macro 'raw_cpu_read_4' #define raw_cpu_read_4(pcp) raw_cpu_generic_read(pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/percpu.h:67:2: note: expanded from macro 'raw_cpu_generic_read' *raw_cpu_ptr(&(pcp)); \ ^~~~~~~~~~~~~~~~~~~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:324:31: note: expanded from macro '__pcpu_size_call_return' case 8: pscr_ret__ = stem##8(variable); break; \ ^~~~~~~~ note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:259:20: note: expanded from macro 'VERIFY_PERCPU_PTR' __verify_pcpu_ptr(__p); \ ^~~ include/linux/percpu-defs.h:219:47: note: expanded from macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:324:31: note: expanded from macro '__pcpu_size_call_return' case 8: pscr_ret__ = stem##8(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:12: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:28: error: no member named 'nocb_cb_kthread' in 'struct rcu_data' __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ~~~~~~~~ ^ include/linux/percpu-defs.h:446:15: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~ include/linux/percpu-defs.h:420:67: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~ include/linux/percpu-defs.h:324:31: note: expanded from macro '__pcpu_size_call_return' case 8: pscr_ret__ = stem##8(variable); break; \ ^~~~~~~~ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/percpu-defs.h:264:38: note: expanded from macro 'raw_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~ include/linux/percpu-defs.h:263:65: note: expanded from macro 'per_cpu_ptr' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~ include/linux/percpu-defs.h:260:38: note: expanded from macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ In file included from kernel/rcu/tree.c:5032: >> kernel/rcu/tree_plugin.h:1161:3: error: indirection requires pointer operand ('void' invalid) __this_cpu_read(rcu_data.nocb_cb_kthread) == current; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:446:2: note: expanded from macro '__this_cpu_read' raw_cpu_read(pcp); \ ^~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:420:28: note: expanded from macro 'raw_cpu_read' #define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:324:23: note: expanded from macro '__pcpu_size_call_return' case 8: pscr_ret__ = stem##8(variable); break; \ ^~~~~~~~~~~~~~~~~ <scratch space>:43:1: note: expanded from here raw_cpu_read_8 ^ include/asm-generic/percpu.h:204:30: note: expanded from macro 'raw_cpu_read_8' #define raw_cpu_read_8(pcp) raw_cpu_generic_read(pcp) ^~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/percpu.h:67:2: note: expanded from macro 'raw_cpu_generic_read' *raw_cpu_ptr(&(pcp)); \ ^~~~~~~~~~~~~~~~~~~~ 19 errors generated. vim +1161 kernel/rcu/tree_plugin.h 1153 1154 /* 1155 * Is the current CPU running the RCU-callbacks kthread? 1156 * Caller must have preemption disabled. 1157 */ 1158 static bool rcu_is_callbacks_kthread(void) 1159 { 1160 return __this_cpu_read(rcu_data.rcu_cpu_kthread_task) == current || > 1161 __this_cpu_read(rcu_data.nocb_cb_kthread) == current; 1162 } 1163 -- 0-DAY CI Kernel Test Service https://01.org/lkp