Hi Menglong,

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/Menglong-Dong/ftrace-introduce-FTRACE_OPS_FL_JMP/20251117-115243
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link:    
https://lore.kernel.org/r/20251117034906.32036-7-dongml2%40chinatelecom.cn
patch subject: [PATCH bpf-next v2 6/6] bpf: implement "jmp" mode for trampoline
config: arm64-randconfig-002-20251118 
(https://download.01.org/0day-ci/archive/20251118/[email protected]/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 
0bba1e76581bad04e7d7f09f5115ae5e2989e0d9)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20251118/[email protected]/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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   kernel/bpf/trampoline.c:500:11: error: incomplete definition of type 'struct 
ftrace_ops'
     500 |                 tr->fops->flags |= FTRACE_OPS_FL_JMP;
         |                 ~~~~~~~~^
   include/linux/ftrace.h:40:8: note: forward declaration of 'struct ftrace_ops'
      40 | struct ftrace_ops;
         |        ^
>> kernel/bpf/trampoline.c:500:22: error: use of undeclared identifier 
>> 'FTRACE_OPS_FL_JMP'
     500 |                 tr->fops->flags |= FTRACE_OPS_FL_JMP;
         |                                    ^~~~~~~~~~~~~~~~~
   kernel/bpf/trampoline.c:502:11: error: incomplete definition of type 'struct 
ftrace_ops'
     502 |                 tr->fops->flags &= ~FTRACE_OPS_FL_JMP;
         |                 ~~~~~~~~^
   include/linux/ftrace.h:40:8: note: forward declaration of 'struct ftrace_ops'
      40 | struct ftrace_ops;
         |        ^
   kernel/bpf/trampoline.c:502:23: error: use of undeclared identifier 
'FTRACE_OPS_FL_JMP'
     502 |                 tr->fops->flags &= ~FTRACE_OPS_FL_JMP;
         |                                     ^~~~~~~~~~~~~~~~~
   kernel/bpf/trampoline.c:534:12: error: incomplete definition of type 'struct 
ftrace_ops'
     534 |                         tr->fops->flags |= FTRACE_OPS_FL_JMP;
         |                         ~~~~~~~~^
   include/linux/ftrace.h:40:8: note: forward declaration of 'struct ftrace_ops'
      40 | struct ftrace_ops;
         |        ^
   kernel/bpf/trampoline.c:534:23: error: use of undeclared identifier 
'FTRACE_OPS_FL_JMP'
     534 |                         tr->fops->flags |= FTRACE_OPS_FL_JMP;
         |                                            ^~~~~~~~~~~~~~~~~
   kernel/bpf/trampoline.c:536:12: error: incomplete definition of type 'struct 
ftrace_ops'
     536 |                         tr->fops->flags &= ~FTRACE_OPS_FL_JMP;
         |                         ~~~~~~~~^
   include/linux/ftrace.h:40:8: note: forward declaration of 'struct ftrace_ops'
      40 | struct ftrace_ops;
         |        ^
   kernel/bpf/trampoline.c:536:24: error: use of undeclared identifier 
'FTRACE_OPS_FL_JMP'
     536 |                         tr->fops->flags &= ~FTRACE_OPS_FL_JMP;
         |                                             ^~~~~~~~~~~~~~~~~
   8 errors generated.


vim +/FTRACE_OPS_FL_JMP +500 kernel/bpf/trampoline.c

   470  
   471          size = arch_bpf_trampoline_size(&tr->func.model, tr->flags,
   472                                          tlinks, tr->func.addr);
   473          if (size < 0) {
   474                  err = size;
   475                  goto out;
   476          }
   477  
   478          if (size > PAGE_SIZE) {
   479                  err = -E2BIG;
   480                  goto out;
   481          }
   482  
   483          im = bpf_tramp_image_alloc(tr->key, size);
   484          if (IS_ERR(im)) {
   485                  err = PTR_ERR(im);
   486                  goto out;
   487          }
   488  
   489          err = arch_prepare_bpf_trampoline(im, im->image, im->image + 
size,
   490                                            &tr->func.model, tr->flags, 
tlinks,
   491                                            tr->func.addr);
   492          if (err < 0)
   493                  goto out_free;
   494  
   495          err = arch_protect_bpf_trampoline(im->image, im->size);
   496          if (err)
   497                  goto out_free;
   498  
   499          if (bpf_trampoline_use_jmp(tr->flags))
 > 500                  tr->fops->flags |= FTRACE_OPS_FL_JMP;
   501          else
   502                  tr->fops->flags &= ~FTRACE_OPS_FL_JMP;
   503  
   504          WARN_ON(tr->cur_image && total == 0);
   505          if (tr->cur_image)
   506                  /* progs already running at this address */
   507                  err = modify_fentry(tr, orig_flags, 
tr->cur_image->image,
   508                                      im->image, lock_direct_mutex);
   509          else
   510                  /* first time registering */
   511                  err = register_fentry(tr, im->image);
   512  

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

Reply via email to