[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

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@i...) 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@i...) 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
participants (1)
-
kernel test robot