tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: bc708bbd8260ee4eb3428b0109f5f3be661fae46 commit: 65eb006d85a2ac0b23464808099726bd826e9877 [2368/6966] bpf: Move kernel test kfuncs to bpf_testmod compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=65eb006d85a2ac0b23464808099726bd826e9877 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 65eb006d85a2ac0b23464808099726bd826e9877 make O=/tmp/kselftest headers make O=/tmp/kselftest -C tools/testing/selftests If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202306051319.EihCQZPs-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:199:1: warning: no previous prototype for 'bpf_testmod_test_read' [-Wmissing-prototypes] 199 | bpf_testmod_test_read(struct file *file, struct kobject *kobj, | ^~~~~~~~~~~~~~~~~~~~~ tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:259:1: warning: no previous prototype for 'bpf_testmod_test_write' [-Wmissing-prototypes] 259 | bpf_testmod_test_write(struct file *file, struct kobject *kobj, | ^~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:330:18: warning: no previous prototype for 'bpf_kfunc_call_test_offset' [-Wmissing-prototypes] 330 | __bpf_kfunc void bpf_kfunc_call_test_offset(struct prog_test_ref_kfunc *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:336:1: warning: no previous prototype for 'bpf_kfunc_call_memb_acquire' [-Wmissing-prototypes] 336 | bpf_kfunc_call_memb_acquire(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:342:18: warning: no previous prototype for 'bpf_kfunc_call_memb1_release' [-Wmissing-prototypes] 342 | __bpf_kfunc void bpf_kfunc_call_memb1_release(struct prog_test_member1 *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:394:18: warning: no previous prototype for 'bpf_kfunc_call_test_fail1' [-Wmissing-prototypes] 394 | __bpf_kfunc void bpf_kfunc_call_test_fail1(struct prog_test_fail1 *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:398:18: warning: no previous prototype for 'bpf_kfunc_call_test_fail2' [-Wmissing-prototypes] 398 | __bpf_kfunc void bpf_kfunc_call_test_fail2(struct prog_test_fail2 *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:402:18: warning: no previous prototype for 'bpf_kfunc_call_test_fail3' [-Wmissing-prototypes] 402 | __bpf_kfunc void bpf_kfunc_call_test_fail3(struct prog_test_fail3 *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:410:18: warning: no previous prototype for 'bpf_kfunc_call_test_mem_len_fail1' [-Wmissing-prototypes] 410 | __bpf_kfunc void bpf_kfunc_call_test_mem_len_fail1(void *mem, int len) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:465:14: warning: no previous prototype for 'bpf_fentry_shadow_test' [-Wmissing-prototypes] 465 | noinline int bpf_fentry_shadow_test(int a) | ^~~~~~~~~~~~~~~~~~~~~~ vim +/bpf_kfunc_call_test_offset +330 tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c 329 > 330 __bpf_kfunc void bpf_kfunc_call_test_offset(struct prog_test_ref_kfunc *p) 331 { 332 WARN_ON_ONCE(1); 333 } 334 335 __bpf_kfunc struct prog_test_member * > 336 bpf_kfunc_call_memb_acquire(void) 337 { 338 WARN_ON_ONCE(1); 339 return NULL; 340 } 341 > 342 __bpf_kfunc void bpf_kfunc_call_memb1_release(struct prog_test_member1 *p) 343 { 344 WARN_ON_ONCE(1); 345 } 346 347 static int *__bpf_kfunc_call_test_get_mem(struct prog_test_ref_kfunc *p, const int size) 348 { 349 if (size > 2 * sizeof(int)) 350 return NULL; 351 352 return (int *)p; 353 } 354 355 __bpf_kfunc int *bpf_kfunc_call_test_get_rdwr_mem(struct prog_test_ref_kfunc *p, 356 const int rdwr_buf_size) 357 { 358 return __bpf_kfunc_call_test_get_mem(p, rdwr_buf_size); 359 } 360 361 __bpf_kfunc int *bpf_kfunc_call_test_get_rdonly_mem(struct prog_test_ref_kfunc *p, 362 const int rdonly_buf_size) 363 { 364 return __bpf_kfunc_call_test_get_mem(p, rdonly_buf_size); 365 } 366 367 /* the next 2 ones can't be really used for testing expect to ensure 368 * that the verifier rejects the call. 369 * Acquire functions must return struct pointers, so these ones are 370 * failing. 371 */ 372 __bpf_kfunc int *bpf_kfunc_call_test_acq_rdonly_mem(struct prog_test_ref_kfunc *p, 373 const int rdonly_buf_size) 374 { 375 return __bpf_kfunc_call_test_get_mem(p, rdonly_buf_size); 376 } 377 378 __bpf_kfunc void bpf_kfunc_call_int_mem_release(int *p) 379 { 380 } 381 382 __bpf_kfunc void bpf_kfunc_call_test_pass_ctx(struct __sk_buff *skb) 383 { 384 } 385 386 __bpf_kfunc void bpf_kfunc_call_test_pass1(struct prog_test_pass1 *p) 387 { 388 } 389 390 __bpf_kfunc void bpf_kfunc_call_test_pass2(struct prog_test_pass2 *p) 391 { 392 } 393 > 394 __bpf_kfunc void bpf_kfunc_call_test_fail1(struct prog_test_fail1 *p) 395 { 396 } 397 > 398 __bpf_kfunc void bpf_kfunc_call_test_fail2(struct prog_test_fail2 *p) 399 { 400 } 401 > 402 __bpf_kfunc void bpf_kfunc_call_test_fail3(struct prog_test_fail3 *p) 403 { 404 } 405 406 __bpf_kfunc void bpf_kfunc_call_test_mem_len_pass1(void *mem, int mem__sz) 407 { 408 } 409 > 410 __bpf_kfunc void bpf_kfunc_call_test_mem_len_fail1(void *mem, int len) 411 { 412 } 413 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki