Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on powerpc/next]
[also build test ERROR on powerpc/fixes linus/master v6.19-rc5 next-20260114]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/adubey-linux-ibm-com/powerpc64-bpf-Move-tail_call_cnt-to-bottom-of-stack-frame/20260114-195044
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
patch link:    
https://lore.kernel.org/r/20260114114450.30405-4-adubey%40linux.ibm.com
patch subject: [PATCH v2 3/6] powerpc64/bpf: Tailcall handling with trampolines
config: powerpc-randconfig-002-20260114 
(https://download.01.org/0day-ci/archive/20260115/[email protected]/config)
compiler: powerpc-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260115/[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 >>):

   arch/powerpc/net/bpf_jit_comp.c: In function 
'bpf_trampoline_setup_tail_call_info':
>> arch/powerpc/net/bpf_jit_comp.c:644:43: error: 'BPF_PPC_TAILCALL' undeclared 
>> (first use in this function); did you mean 'BPF_TAIL_CALL'?
     644 |                 int tailcallinfo_offset = BPF_PPC_TAILCALL;
         |                                           ^~~~~~~~~~~~~~~~
         |                                           BPF_TAIL_CALL
   arch/powerpc/net/bpf_jit_comp.c:644:43: note: each undeclared identifier is 
reported only once for each function it appears in
   arch/powerpc/net/bpf_jit_comp.c: In function '__arch_prepare_bpf_trampoline':
   arch/powerpc/net/bpf_jit_comp.c:850:41: error: 'BPF_PPC_TAILCALL' undeclared 
(first use in this function); did you mean 'BPF_TAIL_CALL'?
     850 |                 bpf_frame_size += SZL + BPF_PPC_TAILCALL;
         |                                         ^~~~~~~~~~~~~~~~
         |                                         BPF_TAIL_CALL


vim +644 arch/powerpc/net/bpf_jit_comp.c

   625  
   626  /*
   627   * Refer the label 'Generated stack layout' in this file for actual 
stack
   628   * layout during trampoline invocation.
   629   *
   630   * Refer __arch_prepare_bpf_trampoline() for stack component details.
   631   *
   632   * The tailcall count/reference is present in caller's stack frame. Its 
required
   633   * to copy the content of tail_call_info before calling the actual 
function
   634   * to which the trampoline is attached.
   635   *
   636   */
   637  
   638  static void bpf_trampoline_setup_tail_call_info(u32 *image, struct 
codegen_context *ctx,
   639                                                 int func_frame_offset,
   640                                                 int 
bpf_dummy_frame_size, int r4_off)
   641  {
   642          if (IS_ENABLED(CONFIG_PPC64)) {
   643                  /* See bpf_jit_stack_tailcallinfo_offset() */
 > 644                  int tailcallinfo_offset = BPF_PPC_TAILCALL;
   645                  /*
   646                   * func_frame_offset =                                  
 ...(1)
   647                   *     bpf_dummy_frame_size + trampoline_frame_size
   648                   */
   649                  EMIT(PPC_RAW_LD(_R4, _R1, func_frame_offset));
   650                  EMIT(PPC_RAW_LD(_R3, _R4, -tailcallinfo_offset));
   651  
   652                  /*
   653                   * Setting the tail_call_info in trampoline's frame
   654                   * depending on if previous frame had value or 
reference.
   655                   */
   656                  EMIT(PPC_RAW_CMPLWI(_R3, MAX_TAIL_CALL_CNT));
   657                  PPC_COND_BRANCH(COND_GT, CTX_NIA(ctx) + 8);
   658                  EMIT(PPC_RAW_ADDI(_R3, _R4, 
bpf_jit_stack_tailcallinfo_offset(ctx)));
   659                  /*
   660                   * From ...(1) above:
   661                   * trampoline_frame_bottom =                            
...(2)
   662                   *     func_frame_offset - bpf_dummy_frame_size
   663                   *
   664                   * Using ...(2) derived above:
   665                   *  trampoline_tail_call_info_offset =                  
...(3)
   666                   *      trampoline_frame_bottom - tailcallinfo_offset
   667                   *
   668                   * From ...(3):
   669                   * Use trampoline_tail_call_info_offset to write 
reference of main's
   670                   * tail_call_info in trampoline frame.
   671                   */
   672                  EMIT(PPC_RAW_STL(_R3, _R1, (func_frame_offset - 
bpf_dummy_frame_size)
   673                                          - tailcallinfo_offset));
   674  
   675          } else {
   676                  /* See bpf_jit_stack_offsetof() and BPF_PPC_TC */
   677                  EMIT(PPC_RAW_LL(_R4, _R1, r4_off));
   678          }
   679  }
   680  

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

Reply via email to