[ardb:arm32-ti-in-task 4/7] include/linux/percpu-defs.h:240:1: error: braced-group within expression allowed only inside a function

From: kernel test robot
Date: Sun Sep 12 2021 - 14:23:33 EST


tree: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git arm32-ti-in-task
head: 1a3074da6972ec4df258a8503ef5541362b0d0d1
commit: 59803622c2c2614e91a19cf9a00a2d96095c2132 [4/7] ARM: smp: use a per-CPU variable to record the CPU number
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.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/ardb/linux.git/commit/?id=59803622c2c2614e91a19cf9a00a2d96095c2132
git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git
git fetch --no-tags ardb arm32-ti-in-task
git checkout 59803622c2c2614e91a19cf9a00a2d96095c2132
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash

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 include/asm-generic/percpu.h:7,
from arch/arm/include/asm/percpu.h:41,
from include/linux/irqflags.h:17,
from arch/arm/include/asm/bitops.h:28,
from include/linux/bitops.h:33,
from include/linux/kernel.h:12,
from arch/arm/common/mcpm_entry.c:10:
>> include/linux/percpu-defs.h:240:1: error: braced-group within expression allowed only inside a function
240 | ({ \
| ^
arch/arm/include/asm/smp.h:21:34: note: in expansion of macro 'raw_cpu_ptr'
21 | #define raw_smp_processor_id() (*raw_cpu_ptr(&cpu_number))
| ^~~~~~~~~~~
include/linux/smp.h:258:31: note: in expansion of macro 'raw_smp_processor_id'
258 | #define __smp_processor_id(x) raw_smp_processor_id(x)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/smp.h:265:29: note: in expansion of macro '__smp_processor_id'
265 | # define smp_processor_id() __smp_processor_id()
| ^~~~~~~~~~~~~~~~~~
arch/arm/include/asm/proc-fns.h:114:52: note: in expansion of macro 'smp_processor_id'
114 | #define PROC_VTABLE(f) cpu_vtable[smp_processor_id()]->f
| ^~~~~~~~~~~~~~~~
arch/arm/include/asm/proc-fns.h:137:41: note: in expansion of macro 'PROC_VTABLE'
137 | #define cpu_reset PROC_VTABLE(reset)
| ^~~~~~~~~~~
arch/arm/common/mcpm_entry.c:237:16: note: in expansion of macro 'cpu_reset'
237 | typedef typeof(cpu_reset) phys_reset_t;
| ^~~~~~~~~
arch/arm/common/mcpm_entry.c: In function 'mcpm_cpu_power_down':
>> arch/arm/common/mcpm_entry.c:302:9: error: called object 'phys_reset' is not a function or function pointer
302 | phys_reset(__pa_symbol(mcpm_entry_point), false);
| ^~~~~~~~~~
arch/arm/common/mcpm_entry.c:243:22: note: declared here
243 | phys_reset_t phys_reset;
| ^~~~~~~~~~
arch/arm/common/mcpm_entry.c: In function 'nocache_trampoline':
arch/arm/common/mcpm_entry.c:391:9: error: called object 'phys_reset' is not a function or function pointer
391 | phys_reset(__pa_symbol(mcpm_entry_point), false);
| ^~~~~~~~~~
arch/arm/common/mcpm_entry.c:379:22: note: declared here
379 | phys_reset_t phys_reset;
| ^~~~~~~~~~
--
In file included from include/asm-generic/percpu.h:7,
from arch/arm/include/asm/percpu.h:41,
from include/linux/irqflags.h:17,
from arch/arm/include/asm/bitops.h:28,
from include/linux/bitops.h:33,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from arch/arm/include/asm/cacheflush.h:10,
from arch/arm/include/asm/mcpm.h:30,
from arch/arm/include/asm/arm-cci.h:12,
from include/linux/arm-cci.h:14,
from arch/arm/mach-sunxi/mc_smp.c:14:
>> include/linux/percpu-defs.h:240:1: error: braced-group within expression allowed only inside a function
240 | ({ \
| ^
arch/arm/include/asm/smp.h:21:34: note: in expansion of macro 'raw_cpu_ptr'
21 | #define raw_smp_processor_id() (*raw_cpu_ptr(&cpu_number))
| ^~~~~~~~~~~
include/linux/smp.h:258:31: note: in expansion of macro 'raw_smp_processor_id'
258 | #define __smp_processor_id(x) raw_smp_processor_id(x)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/smp.h:265:29: note: in expansion of macro '__smp_processor_id'
265 | # define smp_processor_id() __smp_processor_id()
| ^~~~~~~~~~~~~~~~~~
arch/arm/include/asm/proc-fns.h:114:52: note: in expansion of macro 'smp_processor_id'
114 | #define PROC_VTABLE(f) cpu_vtable[smp_processor_id()]->f
| ^~~~~~~~~~~~~~~~
arch/arm/include/asm/proc-fns.h:137:41: note: in expansion of macro 'PROC_VTABLE'
137 | #define cpu_reset PROC_VTABLE(reset)
| ^~~~~~~~~~~
arch/arm/mach-sunxi/mc_smp.c:650:16: note: in expansion of macro 'cpu_reset'
650 | typedef typeof(cpu_reset) phys_reset_t;
| ^~~~~~~~~
arch/arm/mach-sunxi/mc_smp.c: In function 'nocache_trampoline':
>> arch/arm/mach-sunxi/mc_smp.c:660:9: error: called object 'phys_reset' is not a function or function pointer
660 | phys_reset(__pa_symbol(sunxi_mc_smp_resume), false);
| ^~~~~~~~~~
arch/arm/mach-sunxi/mc_smp.c:654:22: note: declared here
654 | phys_reset_t phys_reset;
| ^~~~~~~~~~


vim +240 include/linux/percpu-defs.h

62fde54123fb64 Tejun Heo 2014-06-17 238
6fbc07bbe2b5a8 Tejun Heo 2014-06-17 239 #define raw_cpu_ptr(ptr) \
6fbc07bbe2b5a8 Tejun Heo 2014-06-17 @240 ({ \
6fbc07bbe2b5a8 Tejun Heo 2014-06-17 241 __verify_pcpu_ptr(ptr); \
6fbc07bbe2b5a8 Tejun Heo 2014-06-17 242 arch_raw_cpu_ptr(ptr); \
6fbc07bbe2b5a8 Tejun Heo 2014-06-17 243 })
62fde54123fb64 Tejun Heo 2014-06-17 244

:::::: The code at line 240 was first introduced by commit
:::::: 6fbc07bbe2b5a898532f970c5a397f8789ace0d5 percpu: invoke __verify_pcpu_ptr() from the generic part of accessors and operations

:::::: TO: Tejun Heo <tj@xxxxxxxxxx>
:::::: CC: Tejun Heo <tj@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip