All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:OLK-6.6 2564/2564] drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1260:7: warning: variable 'mdev' is used uninitialized whenever 'if' condition is true
@ 2025-07-21 12:22 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-07-21 12:22 UTC (permalink / raw)
  To: kernel; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   53a788b898e925f28e495dbd4e4a7ffd349b42ba
commit: 69181c3c9413ccaa4dab458057d13efda520cb60 [2564/2564] Net: nebula_matrix: fix ci build warning
config: arm64-randconfig-004-20250721 (https://download.01.org/0day-ci/archive/20250721/202507212015.E4IEaBTY-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 853c343b45b3e83cc5eeef5a52fc8cc9d8a09252)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250721/202507212015.E4IEaBTY-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507212015.E4IEaBTY-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:6:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_product_base.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_include.h:12:
   In file included from include/linux/pci.h:1669:
   In file included from include/linux/dmapool.h:14:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:2247:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:475:14: warning: variable 'hw_addr' set but not used [-Wunused-but-set-variable]
     475 |         u8 __iomem *hw_addr;
         |                     ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:676:23: warning: variable 'vfn' set but not used [-Wunused-but-set-variable]
     676 |         unsigned long vaddr, vfn;
         |                              ^
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1260:7: warning: variable 'mdev' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1260 |                 if (IS_ERR(cdev)) {
         |                     ^~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1283:18: note: uninitialized use occurs here
    1283 |         devm_kfree(dev, mdev);
         |                         ^~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1260:3: note: remove the 'if' if its condition is always false
    1260 |                 if (IS_ERR(cdev)) {
         |                 ^~~~~~~~~~~~~~~~~~~
    1261 |                         dev_err(dev, "device create failed\n");
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1262 |                         idr_remove(&nbl_userdev.cidr, minor);
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1263 |                         mutex_unlock(&nbl_userdev.clock);
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1264 |                         goto free_dev;
         |                         ~~~~~~~~~~~~~~
    1265 |                 }
         |                 ~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1252:7: warning: variable 'mdev' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1252 |                 if (minor < 0) {
         |                     ^~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1283:18: note: uninitialized use occurs here
    1283 |         devm_kfree(dev, mdev);
         |                         ^~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1252:3: note: remove the 'if' if its condition is always false
    1252 |                 if (minor < 0) {
         |                 ^~~~~~~~~~~~~~~~
    1253 |                         dev_err(dev, "alloc userdev dev minor failed\n");
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1254 |                         mutex_unlock(&nbl_userdev.clock);
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1255 |                         goto free_dev;
         |                         ~~~~~~~~~~~~~~
    1256 |                 }
         |                 ~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1168:35: note: initialize the variable 'mdev' to silence this warning
    1168 |         struct device *cdev = NULL, *mdev;
         |                                          ^
         |                                           = NULL
   9 warnings generated.


vim +1260 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c

bad535d287c9c1 Bennie Yan 2024-09-24  1162  
bad535d287c9c1 Bennie Yan 2024-09-24  1163  void nbl_dev_start_user_dev(struct nbl_adapter *adapter)
bad535d287c9c1 Bennie Yan 2024-09-24  1164  {
bad535d287c9c1 Bennie Yan 2024-09-24  1165  	struct nbl_dev_mgt *dev_mgt = (struct nbl_dev_mgt *)NBL_ADAPTER_TO_DEV_MGT(adapter);
bad535d287c9c1 Bennie Yan 2024-09-24  1166  	struct nbl_common_info *common = NBL_ADAPTER_TO_COMMON(adapter);
bad535d287c9c1 Bennie Yan 2024-09-24  1167  	struct device *dev = NBL_COMMON_TO_DEV(common);
bad535d287c9c1 Bennie Yan 2024-09-24  1168  	struct device *cdev = NULL, *mdev;
bad535d287c9c1 Bennie Yan 2024-09-24  1169  	struct pci_dev *pdev = NBL_COMMON_TO_PDEV(common);
bad535d287c9c1 Bennie Yan 2024-09-24  1170  	struct nbl_dev_user *user;
bad535d287c9c1 Bennie Yan 2024-09-24  1171  	void *shm_msg_ring;
bad535d287c9c1 Bennie Yan 2024-09-24  1172  	bool iommu_status = 0, remap_status = 0;
bad535d287c9c1 Bennie Yan 2024-09-24  1173  	int minor = 0, ret;
bad535d287c9c1 Bennie Yan 2024-09-24  1174  
bad535d287c9c1 Bennie Yan 2024-09-24  1175  	if (!nbl_userdev.success)
bad535d287c9c1 Bennie Yan 2024-09-24  1176  		return;
bad535d287c9c1 Bennie Yan 2024-09-24  1177  
bad535d287c9c1 Bennie Yan 2024-09-24  1178  	if (!dev_is_dma_coherent(dev))
bad535d287c9c1 Bennie Yan 2024-09-24  1179  		return;
bad535d287c9c1 Bennie Yan 2024-09-24  1180  
bad535d287c9c1 Bennie Yan 2024-09-24  1181  	if (dma_get_mask(dev) != DMA_BIT_MASK(64))
bad535d287c9c1 Bennie Yan 2024-09-24  1182  		return;
bad535d287c9c1 Bennie Yan 2024-09-24  1183  
bad535d287c9c1 Bennie Yan 2024-09-24  1184  	iommu_status = nbl_dma_iommu_status(pdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1185  	remap_status = nbl_dma_remap_status(pdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1186  
bad535d287c9c1 Bennie Yan 2024-09-24  1187  	/* iommu passthrough */
bad535d287c9c1 Bennie Yan 2024-09-24  1188  	if (iommu_status && !remap_status) {
bad535d287c9c1 Bennie Yan 2024-09-24  1189  		if (common->dma_dev == common->dev)
bad535d287c9c1 Bennie Yan 2024-09-24  1190  			return;
bad535d287c9c1 Bennie Yan 2024-09-24  1191  		remap_status = 1;
bad535d287c9c1 Bennie Yan 2024-09-24  1192  	}
bad535d287c9c1 Bennie Yan 2024-09-24  1193  
bad535d287c9c1 Bennie Yan 2024-09-24  1194  	shm_msg_ring = kzalloc(NBL_USER_DEV_SHMMSGRING_SIZE, GFP_KERNEL);
bad535d287c9c1 Bennie Yan 2024-09-24  1195  	if (!shm_msg_ring)
bad535d287c9c1 Bennie Yan 2024-09-24  1196  		return;
bad535d287c9c1 Bennie Yan 2024-09-24  1197  
bad535d287c9c1 Bennie Yan 2024-09-24  1198  	user = devm_kzalloc(dev, sizeof(struct nbl_dev_user), GFP_KERNEL);
bad535d287c9c1 Bennie Yan 2024-09-24  1199  	if (!user) {
bad535d287c9c1 Bennie Yan 2024-09-24  1200  		kfree(shm_msg_ring);
bad535d287c9c1 Bennie Yan 2024-09-24  1201  		return;
bad535d287c9c1 Bennie Yan 2024-09-24  1202  	}
bad535d287c9c1 Bennie Yan 2024-09-24  1203  
bad535d287c9c1 Bennie Yan 2024-09-24  1204  	if (remap_status) {
bad535d287c9c1 Bennie Yan 2024-09-24  1205  		/* mdev init */
bad535d287c9c1 Bennie Yan 2024-09-24  1206  		mdev = devm_kzalloc(dev, sizeof(struct device), GFP_KERNEL);
bad535d287c9c1 Bennie Yan 2024-09-24  1207  		if (!mdev) {
bad535d287c9c1 Bennie Yan 2024-09-24  1208  			kfree(shm_msg_ring);
bad535d287c9c1 Bennie Yan 2024-09-24  1209  			return;
bad535d287c9c1 Bennie Yan 2024-09-24  1210  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1211  
bad535d287c9c1 Bennie Yan 2024-09-24  1212  		device_initialize(mdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1213  		mdev->parent = dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1214  
bad535d287c9c1 Bennie Yan 2024-09-24  1215  		mdev->bus = &nbl_bus_type;
bad535d287c9c1 Bennie Yan 2024-09-24  1216  
bad535d287c9c1 Bennie Yan 2024-09-24  1217  		mdev->release = nbl_mdev_device_release;
bad535d287c9c1 Bennie Yan 2024-09-24  1218  
bad535d287c9c1 Bennie Yan 2024-09-24  1219  		ret = dev_set_name(mdev, pci_name(pdev));
bad535d287c9c1 Bennie Yan 2024-09-24  1220  		if (ret) {
bad535d287c9c1 Bennie Yan 2024-09-24  1221  			dev_info(dev, "mdev set name failed\n");
bad535d287c9c1 Bennie Yan 2024-09-24  1222  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1223  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1224  
bad535d287c9c1 Bennie Yan 2024-09-24  1225  		ret = device_add(mdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1226  		if (ret) {
bad535d287c9c1 Bennie Yan 2024-09-24  1227  			dev_err(dev, "mdev add failed\n");
bad535d287c9c1 Bennie Yan 2024-09-24  1228  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1229  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1230  		dev_info(dev, "MDEV: created\n");
bad535d287c9c1 Bennie Yan 2024-09-24  1231  
bad535d287c9c1 Bennie Yan 2024-09-24  1232  		devm_kfree(dev, user);
bad535d287c9c1 Bennie Yan 2024-09-24  1233  
bad535d287c9c1 Bennie Yan 2024-09-24  1234  		user = vfio_alloc_device(nbl_dev_user, vdev, mdev, &nbl_vfio_dev_ops);
bad535d287c9c1 Bennie Yan 2024-09-24  1235  		if (IS_ERR(user)) {
bad535d287c9c1 Bennie Yan 2024-09-24  1236  			device_del(mdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1237  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1238  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1239  
bad535d287c9c1 Bennie Yan 2024-09-24  1240  		ret = vfio_register_emulated_iommu_dev(&user->vdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1241  		if (ret) {
bad535d287c9c1 Bennie Yan 2024-09-24  1242  			vfio_put_device(&user->vdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1243  			device_del(mdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1244  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1245  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1246  
bad535d287c9c1 Bennie Yan 2024-09-24  1247  		user->mdev = mdev;
bad535d287c9c1 Bennie Yan 2024-09-24  1248  		mdev->driver = &nbl_mdev_driver.driver;
bad535d287c9c1 Bennie Yan 2024-09-24  1249  	} else {
bad535d287c9c1 Bennie Yan 2024-09-24  1250  		mutex_lock(&nbl_userdev.clock);
bad535d287c9c1 Bennie Yan 2024-09-24  1251  		minor = idr_alloc(&nbl_userdev.cidr, adapter, 1, MINORMASK + 1, GFP_KERNEL);
bad535d287c9c1 Bennie Yan 2024-09-24  1252  		if (minor < 0) {
bad535d287c9c1 Bennie Yan 2024-09-24  1253  			dev_err(dev, "alloc userdev dev minor failed\n");
bad535d287c9c1 Bennie Yan 2024-09-24  1254  			mutex_unlock(&nbl_userdev.clock);
bad535d287c9c1 Bennie Yan 2024-09-24  1255  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1256  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1257  
bad535d287c9c1 Bennie Yan 2024-09-24  1258  		cdev = device_create(nbl_userdev.cls, NULL, MKDEV(MAJOR(nbl_userdev.cdevt), minor),
bad535d287c9c1 Bennie Yan 2024-09-24  1259  				     NULL, pci_name(pdev));
bad535d287c9c1 Bennie Yan 2024-09-24 @1260  		if (IS_ERR(cdev)) {
bad535d287c9c1 Bennie Yan 2024-09-24  1261  			dev_err(dev, "device create failed\n");
bad535d287c9c1 Bennie Yan 2024-09-24  1262  			idr_remove(&nbl_userdev.cidr, minor);
bad535d287c9c1 Bennie Yan 2024-09-24  1263  			mutex_unlock(&nbl_userdev.clock);
bad535d287c9c1 Bennie Yan 2024-09-24  1264  			goto free_dev;
bad535d287c9c1 Bennie Yan 2024-09-24  1265  		}
bad535d287c9c1 Bennie Yan 2024-09-24  1266  		mutex_unlock(&nbl_userdev.clock);
bad535d287c9c1 Bennie Yan 2024-09-24  1267  		user->dev = cdev;
bad535d287c9c1 Bennie Yan 2024-09-24  1268  		user->minor = minor;
bad535d287c9c1 Bennie Yan 2024-09-24  1269  	}
bad535d287c9c1 Bennie Yan 2024-09-24  1270  
bad535d287c9c1 Bennie Yan 2024-09-24  1271  	user->shm_msg_ring = shm_msg_ring;
bad535d287c9c1 Bennie Yan 2024-09-24  1272  	user->adapter = adapter;
bad535d287c9c1 Bennie Yan 2024-09-24  1273  	user->iommu_status = iommu_status;
bad535d287c9c1 Bennie Yan 2024-09-24  1274  	user->remap_status = remap_status;
bad535d287c9c1 Bennie Yan 2024-09-24  1275  	atomic_set(&user->open_cnt, 0);
bad535d287c9c1 Bennie Yan 2024-09-24  1276  	user->network_type = NBL_KERNEL_NETWORK;
bad535d287c9c1 Bennie Yan 2024-09-24  1277  
bad535d287c9c1 Bennie Yan 2024-09-24  1278  	NBL_DEV_MGT_TO_USER_DEV(dev_mgt) = user;
bad535d287c9c1 Bennie Yan 2024-09-24  1279  
bad535d287c9c1 Bennie Yan 2024-09-24  1280  	return;
bad535d287c9c1 Bennie Yan 2024-09-24  1281  
bad535d287c9c1 Bennie Yan 2024-09-24  1282  free_dev:
bad535d287c9c1 Bennie Yan 2024-09-24  1283  	devm_kfree(dev, mdev);
bad535d287c9c1 Bennie Yan 2024-09-24  1284  	kfree(shm_msg_ring);
bad535d287c9c1 Bennie Yan 2024-09-24  1285  }
bad535d287c9c1 Bennie Yan 2024-09-24  1286  

:::::: The code at line 1260 was first introduced by commit
:::::: bad535d287c9c1056d99de3666be7da84de4a8fc Net:nbl_core: Add nbl_core-driver for nebula-matrix S1055AS series smart NIC.

:::::: TO: Bennie Yan <bennie.yan@nebula-matrix.com>
:::::: CC: Bennie Yan <bennie.yan@nebula-matrix.com>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-07-21 12:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-21 12:22 [openeuler:OLK-6.6 2564/2564] drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1260:7: warning: variable 'mdev' is used uninitialized whenever 'if' condition is true kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.