Re: [PATCH bpf-next v1 3/8] bpf: Support for kfuncs with KF_MAGIC_ARGS

kernel test robot
2025-10-30T10:25:18Z

Hi Ihor,

kernel test robot noticed the following build errors:

[auto build test ERROR on bpf-next/master]

url: https://github.com/intel-lab-lkp/linux/commits/Ihor-Solodrai/bpf-Add-BTF_ID_LIST_END-and-BTF_ID_LIST_SIZE-macros/20251030-030608
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20251029190113.3323406-4-ihor.solodrai%40linux.dev
patch subject: [PATCH bpf-next v1 3/8] bpf: Support for kfuncs with KF_MAGIC_ARGS
config: x86_64-buildonly-randconfig-003-20251030 (https://download.01.org/0day-ci/archive/20251030/202510301811.fP0doUEk-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251030/202510301811.fP0doUEk-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510301811.fP0doUEk-lkp@intel.com/

All errors (new ones prefixed by >>):

| ^
include/linux/compiler.h:166:29: note: in expansion of macro '__PASTE'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^~~~~~~
include/linux/compiler_types.h:84:22: note: in expansion of macro '___PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^~~~~~~~
include/linux/compiler.h:166:37: note: in expansion of macro '__PASTE'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^~~~~~~
include/linux/compiler.h:286:9: note: in expansion of macro '__UNIQUE_ID'
286 | __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)(uintptr_t)&sym;
| ^~~~~~~~~~~
include/linux/compiler.h:289:9: note: in expansion of macro '___ADDRESSABLE'
289 | ___ADDRESSABLE(sym, __section(".discard.addressable"))
| ^~~~~~~~~~~~~~
include/linux/init.h:250:9: note: in expansion of macro '__ADDRESSABLE'
250 | __ADDRESSABLE(fn)
| ^~~~~~~~~~~~~
include/linux/init.h:255:9: note: in expansion of macro '__define_initcall_stub'
255 | __define_initcall_stub(__stub, fn) \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:268:9: note: in expansion of macro '____define_initcall'
268 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:274:9: note: in expansion of macro '__unique_initcall'
274 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:276:35: note: in expansion of macro '___define_initcall'
276 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:307:41: note: in expansion of macro '__define_initcall'
307 | #define late_initcall(fn) __define_initcall(fn, 7)
| ^~~~~~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:1: note: in expansion of macro 'late_initcall'
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~
In file included from include/uapi/linux/filter.h:9,
from include/linux/bpf.h:8:
kernel/bpf/verifier.c:18983:15: error: 'unbound_reg_init' undeclared (first use in this function); did you mean 'unbound_reg'?
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~~~~
include/linux/compiler.h:286:72: note: in definition of macro '___ADDRESSABLE'
286 | __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)(uintptr_t)&sym;
| ^~~
include/linux/init.h:250:9: note: in expansion of macro '__ADDRESSABLE'
250 | __ADDRESSABLE(fn)
| ^~~~~~~~~~~~~
include/linux/init.h:255:9: note: in expansion of macro '__define_initcall_stub'
255 | __define_initcall_stub(__stub, fn) \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:268:9: note: in expansion of macro '____define_initcall'
268 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:274:9: note: in expansion of macro '__unique_initcall'
274 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:276:35: note: in expansion of macro '___define_initcall'
276 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:307:41: note: in expansion of macro '__define_initcall'
307 | #define late_initcall(fn) __define_initcall(fn, 7)
| ^~~~~~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:1: note: in expansion of macro 'late_initcall'
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:15: note: each undeclared identifier is reported only once for each function it appears in
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~~~~
include/linux/compiler.h:286:72: note: in definition of macro '___ADDRESSABLE'
286 | __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)(uintptr_t)&sym;
| ^~~
include/linux/init.h:250:9: note: in expansion of macro '__ADDRESSABLE'
250 | __ADDRESSABLE(fn)
| ^~~~~~~~~~~~~
include/linux/init.h:255:9: note: in expansion of macro '__define_initcall_stub'
255 | __define_initcall_stub(__stub, fn) \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:268:9: note: in expansion of macro '____define_initcall'
268 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:274:9: note: in expansion of macro '__unique_initcall'
274 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:276:35: note: in expansion of macro '___define_initcall'
276 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:307:41: note: in expansion of macro '__define_initcall'
307 | #define late_initcall(fn) __define_initcall(fn, 7)
| ^~~~~~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:1: note: in expansion of macro 'late_initcall'
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~
In file included from include/linux/printk.h:6,
from include/asm-generic/bug.h:22,
from arch/x86/include/asm/bug.h:108,
from include/linux/bug.h:5,
from include/linux/alloc_tag.h:8,
from include/linux/workqueue.h:9,
from include/linux/bpf.h:11:
>> include/linux/init.h:256:9: error: expected declaration specifiers before 'asm'
256 | asm(".section \"" __sec "\", \"a\" \n" \
| ^~~
include/linux/init.h:268:9: note: in expansion of macro '____define_initcall'
268 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:274:9: note: in expansion of macro '__unique_initcall'
274 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:276:35: note: in expansion of macro '___define_initcall'
276 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:307:41: note: in expansion of macro '__define_initcall'
307 | #define late_initcall(fn) __define_initcall(fn, 7)
| ^~~~~~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:1: note: in expansion of macro 'late_initcall'
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~
In file included from include/linux/init.h:5:
include/linux/build_bug.h:78:41: error: expected declaration specifiers before '_Static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~~~~~~~~~~~
include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ^~~~~~~~~~~~~~~
include/linux/init.h:260:9: note: in expansion of macro 'static_assert'
260 | static_assert(__same_type(initcall_t, &fn));
| ^~~~~~~~~~~~~
include/linux/init.h:268:9: note: in expansion of macro '____define_initcall'
268 | ____define_initcall(fn, \
| ^~~~~~~~~~~~~~~~~~~
include/linux/init.h:274:9: note: in expansion of macro '__unique_initcall'
274 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:276:35: note: in expansion of macro '___define_initcall'
276 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:307:41: note: in expansion of macro '__define_initcall'
307 | #define late_initcall(fn) __define_initcall(fn, 7)
| ^~~~~~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:1: note: in expansion of macro 'late_initcall'
18983 | late_initcall(unbound_reg_init);
| ^~~~~~~~~~~~~
kernel/bpf/verifier.c:18983:32: error: expected declaration specifiers before ';' token
18983 | late_initcall(unbound_reg_init);
| ^
kernel/bpf/verifier.c:18987:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
18987 | {
| ^
kernel/bpf/verifier.c:19002:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19002 | {
| ^
kernel/bpf/verifier.c:19015:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19015 | {
| ^
kernel/bpf/verifier.c:19139:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19139 | {
| ^
kernel/bpf/verifier.c:19212:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19212 | {
| ^
kernel/bpf/verifier.c:19232:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19232 | {
| ^
kernel/bpf/verifier.c:19241:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19241 | {
| ^
kernel/bpf/verifier.c:19282:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19282 | {
| ^
kernel/bpf/verifier.c:19343:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19343 | {
| ^
kernel/bpf/verifier.c:19373:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19373 | {
| ^
kernel/bpf/verifier.c:19390:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19390 | {
| ^
kernel/bpf/verifier.c:19453:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19453 | {
| ^
kernel/bpf/verifier.c:19477:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19477 | {
| ^
kernel/bpf/verifier.c:19833:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19833 | {
| ^
kernel/bpf/verifier.c:19861:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19861 | {
| ^
kernel/bpf/verifier.c:19867:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19867 | {
| ^
kernel/bpf/verifier.c:19878:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19878 | {
| ^
kernel/bpf/verifier.c:19884:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
19884 | {
| ^
kernel/bpf/verifier.c:19930:1: warning: empty declaration

vim +/asm +256 include/linux/init.h

a8cccdd954732a5 Sami Tolvanen 2020-12-11 252
1b1eeca7e4c19fa Ard Biesheuvel 2018-08-21 253 #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
3578ad11f3fba07 Sami Tolvanen 2020-12-11 254 #define ____define_initcall(fn, __stub, __name, __sec) \
3578ad11f3fba07 Sami Tolvanen 2020-12-11 255 __define_initcall_stub(__stub, fn) \
a8cccdd954732a5 Sami Tolvanen 2020-12-11 @256 asm(".section \"" __sec "\", \"a\" \n" \
a8cccdd954732a5 Sami Tolvanen 2020-12-11 257 __stringify(__name) ": \n" \
3578ad11f3fba07 Sami Tolvanen 2020-12-11 258 ".long " __stringify(__stub) " - . \n" \
1cb61759d407166 Marco Elver 2021-05-21 259 ".previous \n"); \
1cb61759d407166 Marco Elver 2021-05-21 260 static_assert(__same_type(initcall_t, &fn));
1b1eeca7e4c19fa Ard Biesheuvel 2018-08-21 261 #else
3578ad11f3fba07 Sami Tolvanen 2020-12-11 262 #define ____define_initcall(fn, __unused, __name, __sec) \
a8cccdd954732a5 Sami Tolvanen 2020-12-11 263 static initcall_t __name __used \
a8cccdd954732a5 Sami Tolvanen 2020-12-11 264 __attribute__((__section__(__sec))) = fn;
1b1eeca7e4c19fa Ard Biesheuvel 2018-08-21 265 #endif
1b1eeca7e4c19fa Ard Biesheuvel 2018-08-21 266

--
0-DAY CI Kernel Test Service