Hi Cindy,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on horms-ipvs/master v6.10-rc7 next-20240703]
[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/Cindy-Lu/vdpa-support-set-mac-address-from-vdpa-tool/20240708-144942
base:   linus/master
patch link:    
https://lore.kernel.org/r/20240708064820.88955-2-lulu%40redhat.com
patch subject: [PATCH v3 1/2] vdpa: support set mac address from vdpa tool
config: i386-buildonly-randconfig-005-20240708 
(https://download.01.org/0day-ci/archive/20240708/202407081733.fcimubd8-...@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 
617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240708/202407081733.fcimubd8-...@intel.com/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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202407081733.fcimubd8-...@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/vdpa/vdpa.c:1377:6: warning: variable 'err' is used uninitialized 
>> whenever 'if' condition is false [-Wsometimes-uninitialized]
    1377 |         if ((mdev->supported_features & BIT_ULL(VIRTIO_NET_F_MAC)) &&
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1378 |             nl_attrs[VDPA_ATTR_DEV_NET_CFG_MACADDR]) {
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/vdpa/vdpa.c:1394:9: note: uninitialized use occurs here
    1394 |         return err;
         |                ^~~
   drivers/vdpa/vdpa.c:1377:2: note: remove the 'if' if its condition is always 
true
    1377 |         if ((mdev->supported_features & BIT_ULL(VIRTIO_NET_F_MAC)) &&
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1378 |             nl_attrs[VDPA_ATTR_DEV_NET_CFG_MACADDR]) {
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/vdpa/vdpa.c:1377:6: warning: variable 'err' is used uninitialized 
>> whenever '&&' condition is false [-Wsometimes-uninitialized]
    1377 |         if ((mdev->supported_features & BIT_ULL(VIRTIO_NET_F_MAC)) &&
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/vdpa/vdpa.c:1394:9: note: uninitialized use occurs here
    1394 |         return err;
         |                ^~~
   drivers/vdpa/vdpa.c:1377:6: note: remove the '&&' if its condition is always 
true
    1377 |         if ((mdev->supported_features & BIT_ULL(VIRTIO_NET_F_MAC)) &&
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/vdpa/vdpa.c:1371:9: note: initialize the variable 'err' to silence 
this warning
    1371 |         int err;
         |                ^
         |                 = 0
   2 warnings generated.


vim +1377 drivers/vdpa/vdpa.c

  1363  
  1364  static int vdpa_dev_net_device_attr_set(struct vdpa_device *vdev,
  1365                                          struct genl_info *info)
  1366  {
  1367          struct vdpa_dev_set_config set_config = {};
  1368          const u8 *macaddr;
  1369          struct vdpa_mgmt_dev *mdev = vdev->mdev;
  1370          struct nlattr **nl_attrs = info->attrs;
  1371          int err;
  1372  
  1373          if (!vdev->mdev)
  1374                  return -EINVAL;
  1375  
  1376          down_write(&vdev->cf_lock);
> 1377          if ((mdev->supported_features & BIT_ULL(VIRTIO_NET_F_MAC)) &&
  1378              nl_attrs[VDPA_ATTR_DEV_NET_CFG_MACADDR]) {
  1379                  set_config.mask |= 
BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MACADDR);
  1380                  macaddr = 
nla_data(nl_attrs[VDPA_ATTR_DEV_NET_CFG_MACADDR]);
  1381                  memcpy(set_config.net.mac, macaddr, ETH_ALEN);
  1382  
  1383                  if (mdev->ops->dev_set_attr) {
  1384                          err = mdev->ops->dev_set_attr(mdev, vdev, 
&set_config);
  1385                  } else {
  1386                          NL_SET_ERR_MSG_FMT_MOD(info->extack,
  1387                                                 "features 0x%llx not 
supported",
  1388                                                 
BIT_ULL(VIRTIO_NET_F_MAC));
  1389                          err = -EINVAL;
  1390                  }
  1391          }
  1392          up_write(&vdev->cf_lock);
  1393  
  1394          return err;
  1395  }
  1396  static int vdpa_nl_cmd_dev_attr_set_doit(struct sk_buff *skb,
  1397                                           struct genl_info *info)
  1398  {
  1399          const char *name;
  1400          int err = 0;
  1401          struct device *dev;
  1402          struct vdpa_device *vdev;
  1403          u64 classes;
  1404  
  1405          if (!info->attrs[VDPA_ATTR_DEV_NAME])
  1406                  return -EINVAL;
  1407  
  1408          name = nla_data(info->attrs[VDPA_ATTR_DEV_NAME]);
  1409  
  1410          down_write(&vdpa_dev_lock);
  1411          dev = bus_find_device(&vdpa_bus, NULL, name, vdpa_name_match);
  1412          if (!dev) {
  1413                  NL_SET_ERR_MSG_MOD(info->extack, "device not found");
  1414                  err = -ENODEV;
  1415                  goto dev_err;
  1416          }
  1417          vdev = container_of(dev, struct vdpa_device, dev);
  1418          if (!vdev->mdev) {
  1419                  NL_SET_ERR_MSG_MOD(
  1420                          info->extack,
  1421                          "Fail to find the specified management device");
  1422                  err = -EINVAL;
  1423                  goto mdev_err;
  1424          }
  1425          classes = vdpa_mgmtdev_get_classes(vdev->mdev, NULL);
  1426          if (classes & BIT_ULL(VIRTIO_ID_NET)) {
  1427                  err = vdpa_dev_net_device_attr_set(vdev, info);
  1428          } else {
  1429                  NL_SET_ERR_MSG_FMT_MOD(info->extack, "%s device not 
supported",
  1430                                         name);
  1431          }
  1432  
  1433  mdev_err:
  1434          put_device(dev);
  1435  dev_err:
  1436          up_write(&vdpa_dev_lock);
  1437          return err;
  1438  }
  1439  

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

Reply via email to