Hi Haoxiang,

kernel test robot noticed the following build errors:

[auto build test ERROR on tnguy-next-queue/dev-queue]
[also build test ERROR on tnguy-net-queue/dev-queue linus/master v6.16-rc1 
next-20260130]
[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/Haoxiang-Li/i40e-add-an-error-handling-path-in-i40e_xsk_pool_enable/20260131-135447
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git 
dev-queue
patch link:    
https://lore.kernel.org/r/20260131055217.729048-1-lihaoxiang%40isrc.iscas.ac.cn
patch subject: [Intel-wired-lan] [PATCH v2] i40e: add an error handling path in 
i40e_xsk_pool_enable()
config: x86_64-rhel-9.4-kunit 
(https://download.01.org/0day-ci/archive/20260131/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260131/[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 error/warnings (new ones prefixed by >>):

   drivers/net/ethernet/intel/i40e/i40e_xsk.c: In function 
'i40e_xsk_pool_enable':
>> drivers/net/ethernet/intel/i40e/i40e_xsk.c:130:9: error: implicit 
>> declaration of function 'i40e_xsk_pool_disable'; did you mean 
>> 'i40e_xsk_pool_enable'? [-Wimplicit-function-declaration]
     130 |         i40e_xsk_pool_disable(vsi, qid);
         |         ^~~~~~~~~~~~~~~~~~~~~
         |         i40e_xsk_pool_enable
   drivers/net/ethernet/intel/i40e/i40e_xsk.c: At top level:
>> drivers/net/ethernet/intel/i40e/i40e_xsk.c:141:12: error: conflicting types 
>> for 'i40e_xsk_pool_disable'; have 'int(struct i40e_vsi *, u16)' {aka 
>> 'int(struct i40e_vsi *, short unsigned int)'}
     141 | static int i40e_xsk_pool_disable(struct i40e_vsi *vsi, u16 qid)
         |            ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/i40e/i40e_xsk.c:142:1: note: an argument type 
that has a default promotion cannot match an empty parameter name list 
declaration
     142 | {
         | ^
   drivers/net/ethernet/intel/i40e/i40e_xsk.c:130:9: note: previous implicit 
declaration of 'i40e_xsk_pool_disable' with type 'int()'
     130 |         i40e_xsk_pool_disable(vsi, qid);
         |         ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/i40e/i40e_xsk.c: In function 
'i40e_xsk_pool_enable':
>> drivers/net/ethernet/intel/i40e/i40e_xsk.c:131:1: warning: control reaches 
>> end of non-void function [-Wreturn-type]
     131 | }
         | ^


vim +130 drivers/net/ethernet/intel/i40e/i40e_xsk.c

    72  
    73  /**
    74   * i40e_xsk_pool_enable - Enable/associate an AF_XDP buffer pool to a
    75   * certain ring/qid
    76   * @vsi: Current VSI
    77   * @pool: buffer pool
    78   * @qid: Rx ring to associate buffer pool with
    79   *
    80   * Returns 0 on success, <0 on failure
    81   **/
    82  static int i40e_xsk_pool_enable(struct i40e_vsi *vsi,
    83                                  struct xsk_buff_pool *pool,
    84                                  u16 qid)
    85  {
    86          struct net_device *netdev = vsi->netdev;
    87          bool if_running;
    88          int err;
    89  
    90          if (vsi->type != I40E_VSI_MAIN)
    91                  return -EINVAL;
    92  
    93          if (qid >= vsi->num_queue_pairs)
    94                  return -EINVAL;
    95  
    96          if (qid >= netdev->real_num_rx_queues ||
    97              qid >= netdev->real_num_tx_queues)
    98                  return -EINVAL;
    99  
   100          err = xsk_pool_dma_map(pool, &vsi->back->pdev->dev, 
I40E_RX_DMA_ATTR);
   101          if (err)
   102                  return err;
   103  
   104          set_bit(qid, vsi->af_xdp_zc_qps);
   105  
   106          if_running = netif_running(vsi->netdev) && 
i40e_enabled_xdp_vsi(vsi);
   107  
   108          if (if_running) {
   109                  err = i40e_queue_pair_disable(vsi, qid);
   110                  if (err)
   111                          goto err_out;
   112  
   113                  err = i40e_realloc_rx_xdp_bi(vsi->rx_rings[qid], true);
   114                  if (err)
   115                          goto err_out;
   116  
   117                  err = i40e_queue_pair_enable(vsi, qid);
   118                  if (err)
   119                          goto err_out;
   120  
   121                  /* Kick start the NAPI context so that receiving will 
start */
   122                  err = i40e_xsk_wakeup(vsi->netdev, qid, XDP_WAKEUP_RX);
   123                  if (err)
   124                          goto err_out;
   125          }
   126  
   127          return 0;
   128  
   129  err_out:
 > 130          i40e_xsk_pool_disable(vsi, qid);
 > 131  }
   132  
   133  /**
   134   * i40e_xsk_pool_disable - Disassociate an AF_XDP buffer pool from a
   135   * certain ring/qid
   136   * @vsi: Current VSI
   137   * @qid: Rx ring to associate buffer pool with
   138   *
   139   * Returns 0 on success, <0 on failure
   140   **/
 > 141  static int i40e_xsk_pool_disable(struct i40e_vsi *vsi, u16 qid)
   142  {
   143          struct net_device *netdev = vsi->netdev;
   144          struct xsk_buff_pool *pool;
   145          bool if_running;
   146          int err;
   147  
   148          pool = xsk_get_pool_from_qid(netdev, qid);
   149          if (!pool)
   150                  return -EINVAL;
   151  
   152          if_running = netif_running(vsi->netdev) && 
i40e_enabled_xdp_vsi(vsi);
   153  
   154          if (if_running) {
   155                  err = i40e_queue_pair_disable(vsi, qid);
   156                  if (err)
   157                          return err;
   158          }
   159  
   160          clear_bit(qid, vsi->af_xdp_zc_qps);
   161          xsk_pool_dma_unmap(pool, I40E_RX_DMA_ATTR);
   162  
   163          if (if_running) {
   164                  err = i40e_realloc_rx_xdp_bi(vsi->rx_rings[qid], false);
   165                  if (err)
   166                          return err;
   167                  err = i40e_queue_pair_enable(vsi, qid);
   168                  if (err)
   169                          return err;
   170          }
   171  
   172          return 0;
   173  }
   174  

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

Reply via email to