Hi Cosmin,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]

url:    
https://github.com/intel-lab-lkp/linux/commits/Cosmin-Ratiu/net-mlx5-Avoid-using-xso-real_dev-unnecessarily/20250407-214239
base:   net-next/main
patch link:    
https://lore.kernel.org/r/20250407133542.2668491-5-cratiu%40nvidia.com
patch subject: [PATCH net-next 4/6] xfrm: Add explicit dev to 
.xdo_dev_state_{add,delete,free}
config: hexagon-randconfig-002-20250408 
(https://download.01.org/0day-ci/archive/20250409/[email protected]/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 
92c93f5286b9ff33f27ff694d2dc33da1c07afdd)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250409/[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 warnings (new ones prefixed by >>):

>> drivers/net/bonding/bond_main.c:462: warning: Function parameter or struct 
>> member 'bond_dev' not described in 'bond_ipsec_add_sa'
>> drivers/net/bonding/bond_main.c:559: warning: Function parameter or struct 
>> member 'bond_dev' not described in 'bond_ipsec_del_sa'


vim +462 drivers/net/bonding/bond_main.c

1ddec5d0eec4b7 Hangbin Liu     2024-09-04  453  
18cb261afd7bf5 Jarod Wilson    2020-06-19  454  /**
18cb261afd7bf5 Jarod Wilson    2020-06-19  455   * bond_ipsec_add_sa - program 
device with a security association
18cb261afd7bf5 Jarod Wilson    2020-06-19  456   * @xs: pointer to transformer 
state struct
7681a4f58fb9c3 Leon Romanovsky 2023-01-24  457   * @extack: extack point to 
fill failure reason
18cb261afd7bf5 Jarod Wilson    2020-06-19  458   **/
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  459  static int 
bond_ipsec_add_sa(struct net_device *bond_dev,
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  460                               
struct xfrm_state *xs,
7681a4f58fb9c3 Leon Romanovsky 2023-01-24  461                               
struct netlink_ext_ack *extack)
18cb261afd7bf5 Jarod Wilson    2020-06-19 @462  {
907ed83a7583e8 Jianbo Liu      2024-08-23  463          struct net_device 
*real_dev;
2aeeef906d5a52 Jianbo Liu      2024-08-23  464          netdevice_tracker 
tracker;
9a5605505d9c7d Taehee Yoo      2021-07-05  465          struct bond_ipsec 
*ipsec;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  466          struct bonding *bond;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  467          struct slave *slave;
b648eba4c69e58 Taehee Yoo      2021-07-05  468          int err;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  469  
5cd24cbe7dca62 Jarod Wilson    2020-07-08  470          if (!bond_dev)
5cd24cbe7dca62 Jarod Wilson    2020-07-08  471                  return -EINVAL;
18cb261afd7bf5 Jarod Wilson    2020-06-19  472  
b648eba4c69e58 Taehee Yoo      2021-07-05  473          rcu_read_lock();
5cd24cbe7dca62 Jarod Wilson    2020-07-08  474          bond = 
netdev_priv(bond_dev);
f548a476268d62 Jarod Wilson    2020-07-08  475          slave = 
rcu_dereference(bond->curr_active_slave);
2aeeef906d5a52 Jianbo Liu      2024-08-23  476          real_dev = slave ? 
slave->dev : NULL;
2aeeef906d5a52 Jianbo Liu      2024-08-23  477          netdev_hold(real_dev, 
&tracker, GFP_ATOMIC);
105cd17a866017 Taehee Yoo      2021-07-05  478          rcu_read_unlock();
2aeeef906d5a52 Jianbo Liu      2024-08-23  479          if (!real_dev) {
2aeeef906d5a52 Jianbo Liu      2024-08-23  480                  err = -ENODEV;
2aeeef906d5a52 Jianbo Liu      2024-08-23  481                  goto out;
105cd17a866017 Taehee Yoo      2021-07-05  482          }
105cd17a866017 Taehee Yoo      2021-07-05  483  
907ed83a7583e8 Jianbo Liu      2024-08-23  484          if 
(!real_dev->xfrmdev_ops ||
907ed83a7583e8 Jianbo Liu      2024-08-23  485              
!real_dev->xfrmdev_ops->xdo_dev_state_add ||
907ed83a7583e8 Jianbo Liu      2024-08-23  486              
netif_is_bond_master(real_dev)) {
3fe57986271aee Leon Romanovsky 2023-01-24  487                  
NL_SET_ERR_MSG_MOD(extack, "Slave does not support ipsec offload");
2aeeef906d5a52 Jianbo Liu      2024-08-23  488                  err = -EINVAL;
2aeeef906d5a52 Jianbo Liu      2024-08-23  489                  goto out;
18cb261afd7bf5 Jarod Wilson    2020-06-19  490          }
18cb261afd7bf5 Jarod Wilson    2020-06-19  491  
2aeeef906d5a52 Jianbo Liu      2024-08-23  492          ipsec = 
kmalloc(sizeof(*ipsec), GFP_KERNEL);
9a5605505d9c7d Taehee Yoo      2021-07-05  493          if (!ipsec) {
2aeeef906d5a52 Jianbo Liu      2024-08-23  494                  err = -ENOMEM;
2aeeef906d5a52 Jianbo Liu      2024-08-23  495                  goto out;
9a5605505d9c7d Taehee Yoo      2021-07-05  496          }
9a5605505d9c7d Taehee Yoo      2021-07-05  497  
907ed83a7583e8 Jianbo Liu      2024-08-23  498          xs->xso.real_dev = 
real_dev;
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  499          err = 
real_dev->xfrmdev_ops->xdo_dev_state_add(real_dev, xs, extack);
9a5605505d9c7d Taehee Yoo      2021-07-05  500          if (!err) {
9a5605505d9c7d Taehee Yoo      2021-07-05  501                  ipsec->xs = xs;
9a5605505d9c7d Taehee Yoo      2021-07-05  502                  
INIT_LIST_HEAD(&ipsec->list);
2aeeef906d5a52 Jianbo Liu      2024-08-23  503                  
mutex_lock(&bond->ipsec_lock);
9a5605505d9c7d Taehee Yoo      2021-07-05  504                  
list_add(&ipsec->list, &bond->ipsec_list);
2aeeef906d5a52 Jianbo Liu      2024-08-23  505                  
mutex_unlock(&bond->ipsec_lock);
9a5605505d9c7d Taehee Yoo      2021-07-05  506          } else {
9a5605505d9c7d Taehee Yoo      2021-07-05  507                  kfree(ipsec);
9a5605505d9c7d Taehee Yoo      2021-07-05  508          }
2aeeef906d5a52 Jianbo Liu      2024-08-23  509  out:
2aeeef906d5a52 Jianbo Liu      2024-08-23  510          netdev_put(real_dev, 
&tracker);
b648eba4c69e58 Taehee Yoo      2021-07-05  511          return err;
18cb261afd7bf5 Jarod Wilson    2020-06-19  512  }
18cb261afd7bf5 Jarod Wilson    2020-06-19  513  
9a5605505d9c7d Taehee Yoo      2021-07-05  514  static void 
bond_ipsec_add_sa_all(struct bonding *bond)
9a5605505d9c7d Taehee Yoo      2021-07-05  515  {
9a5605505d9c7d Taehee Yoo      2021-07-05  516          struct net_device 
*bond_dev = bond->dev;
907ed83a7583e8 Jianbo Liu      2024-08-23  517          struct net_device 
*real_dev;
9a5605505d9c7d Taehee Yoo      2021-07-05  518          struct bond_ipsec 
*ipsec;
9a5605505d9c7d Taehee Yoo      2021-07-05  519          struct slave *slave;
9a5605505d9c7d Taehee Yoo      2021-07-05  520  
2aeeef906d5a52 Jianbo Liu      2024-08-23  521          slave = 
rtnl_dereference(bond->curr_active_slave);
2aeeef906d5a52 Jianbo Liu      2024-08-23  522          real_dev = slave ? 
slave->dev : NULL;
2aeeef906d5a52 Jianbo Liu      2024-08-23  523          if (!real_dev)
2aeeef906d5a52 Jianbo Liu      2024-08-23  524                  return;
9a5605505d9c7d Taehee Yoo      2021-07-05  525  
2aeeef906d5a52 Jianbo Liu      2024-08-23  526          
mutex_lock(&bond->ipsec_lock);
907ed83a7583e8 Jianbo Liu      2024-08-23  527          if 
(!real_dev->xfrmdev_ops ||
907ed83a7583e8 Jianbo Liu      2024-08-23  528              
!real_dev->xfrmdev_ops->xdo_dev_state_add ||
907ed83a7583e8 Jianbo Liu      2024-08-23  529              
netif_is_bond_master(real_dev)) {
9a5605505d9c7d Taehee Yoo      2021-07-05  530                  if 
(!list_empty(&bond->ipsec_list))
907ed83a7583e8 Jianbo Liu      2024-08-23  531                          
slave_warn(bond_dev, real_dev,
9a5605505d9c7d Taehee Yoo      2021-07-05  532                                  
   "%s: no slave xdo_dev_state_add\n",
9a5605505d9c7d Taehee Yoo      2021-07-05  533                                  
   __func__);
9a5605505d9c7d Taehee Yoo      2021-07-05  534                  goto out;
9a5605505d9c7d Taehee Yoo      2021-07-05  535          }
9a5605505d9c7d Taehee Yoo      2021-07-05  536  
9a5605505d9c7d Taehee Yoo      2021-07-05  537          
list_for_each_entry(ipsec, &bond->ipsec_list, list) {
2aeeef906d5a52 Jianbo Liu      2024-08-23  538                  /* If new state 
is added before ipsec_lock acquired */
2aeeef906d5a52 Jianbo Liu      2024-08-23  539                  if 
(ipsec->xs->xso.real_dev == real_dev)
2aeeef906d5a52 Jianbo Liu      2024-08-23  540                          
continue;
2aeeef906d5a52 Jianbo Liu      2024-08-23  541  
907ed83a7583e8 Jianbo Liu      2024-08-23  542                  
ipsec->xs->xso.real_dev = real_dev;
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  543                  if 
(real_dev->xfrmdev_ops->xdo_dev_state_add(real_dev,
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  544                                  
                             ipsec->xs, NULL)) {
907ed83a7583e8 Jianbo Liu      2024-08-23  545                          
slave_warn(bond_dev, real_dev, "%s: failed to add SA\n", __func__);
9a5605505d9c7d Taehee Yoo      2021-07-05  546                          
ipsec->xs->xso.real_dev = NULL;
9a5605505d9c7d Taehee Yoo      2021-07-05  547                  }
9a5605505d9c7d Taehee Yoo      2021-07-05  548          }
9a5605505d9c7d Taehee Yoo      2021-07-05  549  out:
2aeeef906d5a52 Jianbo Liu      2024-08-23  550          
mutex_unlock(&bond->ipsec_lock);
9a5605505d9c7d Taehee Yoo      2021-07-05  551  }
9a5605505d9c7d Taehee Yoo      2021-07-05  552  
18cb261afd7bf5 Jarod Wilson    2020-06-19  553  /**
18cb261afd7bf5 Jarod Wilson    2020-06-19  554   * bond_ipsec_del_sa - clear 
out this specific SA
18cb261afd7bf5 Jarod Wilson    2020-06-19  555   * @xs: pointer to transformer 
state struct
18cb261afd7bf5 Jarod Wilson    2020-06-19  556   **/
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  557  static void 
bond_ipsec_del_sa(struct net_device *bond_dev,
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  558                                
struct xfrm_state *xs)
18cb261afd7bf5 Jarod Wilson    2020-06-19 @559  {
907ed83a7583e8 Jianbo Liu      2024-08-23  560          struct net_device 
*real_dev;
2aeeef906d5a52 Jianbo Liu      2024-08-23  561          netdevice_tracker 
tracker;
9a5605505d9c7d Taehee Yoo      2021-07-05  562          struct bond_ipsec 
*ipsec;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  563          struct bonding *bond;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  564          struct slave *slave;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  565  
5cd24cbe7dca62 Jarod Wilson    2020-07-08  566          if (!bond_dev)
5cd24cbe7dca62 Jarod Wilson    2020-07-08  567                  return;
5cd24cbe7dca62 Jarod Wilson    2020-07-08  568  
a22c39b831a081 Taehee Yoo      2021-07-05  569          rcu_read_lock();
5cd24cbe7dca62 Jarod Wilson    2020-07-08  570          bond = 
netdev_priv(bond_dev);
f548a476268d62 Jarod Wilson    2020-07-08  571          slave = 
rcu_dereference(bond->curr_active_slave);
2aeeef906d5a52 Jianbo Liu      2024-08-23  572          real_dev = slave ? 
slave->dev : NULL;
2aeeef906d5a52 Jianbo Liu      2024-08-23  573          netdev_hold(real_dev, 
&tracker, GFP_ATOMIC);
2aeeef906d5a52 Jianbo Liu      2024-08-23  574          rcu_read_unlock();
18cb261afd7bf5 Jarod Wilson    2020-06-19  575  
18cb261afd7bf5 Jarod Wilson    2020-06-19  576          if (!slave)
a22c39b831a081 Taehee Yoo      2021-07-05  577                  goto out;
18cb261afd7bf5 Jarod Wilson    2020-06-19  578  
9a5605505d9c7d Taehee Yoo      2021-07-05  579          if (!xs->xso.real_dev)
9a5605505d9c7d Taehee Yoo      2021-07-05  580                  goto out;
9a5605505d9c7d Taehee Yoo      2021-07-05  581  
907ed83a7583e8 Jianbo Liu      2024-08-23  582          
WARN_ON(xs->xso.real_dev != real_dev);
18cb261afd7bf5 Jarod Wilson    2020-06-19  583  
907ed83a7583e8 Jianbo Liu      2024-08-23  584          if 
(!real_dev->xfrmdev_ops ||
907ed83a7583e8 Jianbo Liu      2024-08-23  585              
!real_dev->xfrmdev_ops->xdo_dev_state_delete ||
907ed83a7583e8 Jianbo Liu      2024-08-23  586              
netif_is_bond_master(real_dev)) {
907ed83a7583e8 Jianbo Liu      2024-08-23  587                  
slave_warn(bond_dev, real_dev, "%s: no slave xdo_dev_state_delete\n", __func__);
a22c39b831a081 Taehee Yoo      2021-07-05  588                  goto out;
18cb261afd7bf5 Jarod Wilson    2020-06-19  589          }
18cb261afd7bf5 Jarod Wilson    2020-06-19  590  
1e4d9370eb7223 Cosmin Ratiu    2025-04-07  591          
real_dev->xfrmdev_ops->xdo_dev_state_delete(real_dev, xs);
a22c39b831a081 Taehee Yoo      2021-07-05  592  out:
2aeeef906d5a52 Jianbo Liu      2024-08-23  593          netdev_put(real_dev, 
&tracker);
2aeeef906d5a52 Jianbo Liu      2024-08-23  594          
mutex_lock(&bond->ipsec_lock);
9a5605505d9c7d Taehee Yoo      2021-07-05  595          
list_for_each_entry(ipsec, &bond->ipsec_list, list) {
9a5605505d9c7d Taehee Yoo      2021-07-05  596                  if (ipsec->xs 
== xs) {
9a5605505d9c7d Taehee Yoo      2021-07-05  597                          
list_del(&ipsec->list);
9a5605505d9c7d Taehee Yoo      2021-07-05  598                          
kfree(ipsec);
9a5605505d9c7d Taehee Yoo      2021-07-05  599                          break;
9a5605505d9c7d Taehee Yoo      2021-07-05  600                  }
9a5605505d9c7d Taehee Yoo      2021-07-05  601          }
2aeeef906d5a52 Jianbo Liu      2024-08-23  602          
mutex_unlock(&bond->ipsec_lock);
9a5605505d9c7d Taehee Yoo      2021-07-05  603  }
9a5605505d9c7d Taehee Yoo      2021-07-05  604  

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

Reply via email to