include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id'

From: kernel test robot
Date: Mon May 20 2024 - 12:31:55 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c
commit: 24e44cc22aa3112082f2ee23137d048c73ca96d5 mm: percpu: enable per-cpu allocation tagging
date: 4 weeks ago
config: mips-randconfig-r133-20240520 (https://download.01.org/0day-ci/archive/20240521/202405210052.DIrMXJNz-lkp@xxxxxxxxx/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240521/202405210052.DIrMXJNz-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405210052.DIrMXJNz-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

In file included from include/linux/compiler_types.h:151,
from <command-line>:
include/linux/alloc_tag.h: In function '__alloc_tag_ref_set':
>> include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id' [-Werror=implicit-function-declaration]
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); \
| ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); \
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:10: note: in expansion of macro 'raw_cpu_ptr'
72 | *raw_cpu_ptr(&(pcp)) op val; \
| ^~~~~~~~~~~
include/asm-generic/percpu.h:156:9: note: in expansion of macro 'raw_cpu_generic_to_op'
156 | raw_cpu_generic_to_op(pcp, val, op); \
| ^~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:401:41: note: in expansion of macro 'this_cpu_generic_to_op'
401 | #define this_cpu_add_1(pcp, val) this_cpu_generic_to_op(pcp, val, +=)
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:365:25: note: in expansion of macro 'this_cpu_add_1'
365 | case 1: stem##1(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:491:41: note: in expansion of macro '__pcpu_size_call'
491 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:501:41: note: in expansion of macro 'this_cpu_add'
501 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/linux/alloc_tag.h:117:9: note: in expansion of macro 'this_cpu_inc'
117 | this_cpu_inc(tag->counters->calls);
| ^~~~~~~~~~~~
In file included from include/linux/smp.h:119,
from include/linux/percpu.h:8,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/interrupt.h:11,
from include/drm/drm_util.h:35,
from drivers/gpu/drm/xe/xe_device.h:12,
from drivers/gpu/drm/xe/xe_bb.c:10:
arch/mips/include/asm/smp.h: At top level:
>> arch/mips/include/asm/smp.h:26:19: error: static declaration of 'raw_smp_processor_id' follows non-static declaration
26 | static inline int raw_smp_processor_id(void)
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: previous implicit declaration of 'raw_smp_processor_id' with type 'int()'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); \
| ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); \
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:10: note: in expansion of macro 'raw_cpu_ptr'
72 | *raw_cpu_ptr(&(pcp)) op val; \
| ^~~~~~~~~~~
include/asm-generic/percpu.h:156:9: note: in expansion of macro 'raw_cpu_generic_to_op'
156 | raw_cpu_generic_to_op(pcp, val, op); \
| ^~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:401:41: note: in expansion of macro 'this_cpu_generic_to_op'
401 | #define this_cpu_add_1(pcp, val) this_cpu_generic_to_op(pcp, val, +=)
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:365:25: note: in expansion of macro 'this_cpu_add_1'
365 | case 1: stem##1(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:491:41: note: in expansion of macro '__pcpu_size_call'
491 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:501:41: note: in expansion of macro 'this_cpu_add'
501 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/linux/alloc_tag.h:117:9: note: in expansion of macro 'this_cpu_inc'
117 | this_cpu_inc(tag->counters->calls);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/raw_smp_processor_id +31 include/asm-generic/percpu.h

acdac87202a408 travis@xxxxxxx 2008-01-30 23
acdac87202a408 travis@xxxxxxx 2008-01-30 24 /*
acdac87202a408 travis@xxxxxxx 2008-01-30 25 * Determine the offset for the currently active processor.
acdac87202a408 travis@xxxxxxx 2008-01-30 26 * An arch may define __my_cpu_offset to provide a more effective
acdac87202a408 travis@xxxxxxx 2008-01-30 27 * means of obtaining the offset to the per cpu variables of the
acdac87202a408 travis@xxxxxxx 2008-01-30 28 * current processor.
acdac87202a408 travis@xxxxxxx 2008-01-30 29 */
acdac87202a408 travis@xxxxxxx 2008-01-30 30 #ifndef __my_cpu_offset
acdac87202a408 travis@xxxxxxx 2008-01-30 @31 #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
1e8352784abaed Hugh Dickins 2008-02-23 32 #endif
1e8352784abaed Hugh Dickins 2008-02-23 33 #ifdef CONFIG_DEBUG_PREEMPT
acdac87202a408 travis@xxxxxxx 2008-01-30 34 #define my_cpu_offset per_cpu_offset(smp_processor_id())
acdac87202a408 travis@xxxxxxx 2008-01-30 35 #else
acdac87202a408 travis@xxxxxxx 2008-01-30 36 #define my_cpu_offset __my_cpu_offset
acdac87202a408 travis@xxxxxxx 2008-01-30 37 #endif
acdac87202a408 travis@xxxxxxx 2008-01-30 38

:::::: The code at line 31 was first introduced by commit
:::::: acdac87202a408133ee8f7985076de9d2e0dc5ab percpu: make the asm-generic/percpu.h more "generic"

:::::: TO: travis@xxxxxxx <travis@xxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki