CC: [email protected] CC: [email protected] TO: Johannes Berg <[email protected]> CC: Luca Coelho <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 923dcc5eb0c111eccd51cc7ce1658537e3c38b25 commit: 2fd8aaaeb87441e2577e8e55373e9b3b221dc4b0 iwlwifi: pcie: try to grab NIC access early date: 4 weeks ago :::::: branch date: 14 hours ago :::::: commit date: 4 weeks ago config: mips-randconfig-m031-20211104 (attached as .config) compiler: mips-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/net/wireless/intel/iwlwifi/pcie/drv.c:1353 iwl_pci_probe() warn: missing error code 'ret' Old smatch warnings: drivers/net/wireless/intel/iwlwifi/pcie/drv.c:1230 get_crf_id() error: call of '__iwl_err' with no format argument vim +/ret +1353 drivers/net/wireless/intel/iwlwifi/pcie/drv.c 99673ee556fce2 drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2012-01-08 1296 48d1a2110ad9cb drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-24 1297 static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 48d1a2110ad9cb drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-24 1298 { 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1299 const struct iwl_cfg_trans_params *trans; 3fd0d3c170ad6b drivers/net/wireless/iwlwifi/pcie/drv.c Johannes Berg 2014-11-18 1300 const struct iwl_cfg *cfg_7265d __maybe_unused = NULL; 36a79223c4b998 drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2012-02-27 1301 struct iwl_trans *iwl_trans; c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1302 struct iwl_trans_pcie *trans_pcie; 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1303 int i, ret; 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1304 const struct iwl_cfg *cfg; 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1305 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1306 trans = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1307 b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1308 /* b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1309 * This is needed for backwards compatibility with the old b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1310 * tables, so we don't need to change all the config structs b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1311 * at the same time. The cfg is used to compare with the old b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1312 * full cfg structs. b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1313 */ 48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1314 cfg = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); a48709c5d076aa drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-31 1315 b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1316 /* make sure trans is the first element in iwl_cfg */ b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1317 BUILD_BUG_ON(offsetof(struct iwl_cfg, trans)); a48709c5d076aa drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-31 1318 b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1319 iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans); 6965a3540a4b45 drivers/net/wireless/iwlwifi/pcie/drv.c Luciano Coelho 2013-08-10 1320 if (IS_ERR(iwl_trans)) 6965a3540a4b45 drivers/net/wireless/iwlwifi/pcie/drv.c Luciano Coelho 2013-08-10 1321 return PTR_ERR(iwl_trans); b52e7ea109cfe4 drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2012-02-02 1322 c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1323 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans); c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1324 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1325 /* 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1326 * Let's try to grab NIC access early here. Sometimes, NICs may 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1327 * fail to initialize, and if that happens it's better if we see 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1328 * issues early on (and can reprobe, per the logic inside), than 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1329 * first trying to load the firmware etc. and potentially only 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1330 * detecting any problems when the first interface is brought up. 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1331 */ 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1332 ret = iwl_finish_nic_init(iwl_trans); 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1333 if (ret) 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1334 goto out_free_trans; 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1335 if (iwl_trans_grab_nic_access(iwl_trans)) { 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1336 /* all good */ 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1337 iwl_trans_release_nic_access(iwl_trans); 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1338 } else { 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1339 ret = -EIO; 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1340 goto out_free_trans; 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1341 } 2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1342 d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1343 iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID); d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1344 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1345 /* 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1346 * The RF_ID is set to zero in blank OTP so read version to 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1347 * extract the RF_ID. 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1348 * This is relevant only for family 9000 and up. 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1349 */ 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1350 if (iwl_trans->trans_cfg->rf_id && 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1351 iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 && 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1352 !CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && get_crf_id(iwl_trans)) 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 @1353 goto out_free_trans; 1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1354 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1355 for (i = 0; i < ARRAY_SIZE(iwl_dev_info_table); i++) { 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1356 const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i]; d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1357 if ((dev_info->device == (u16)IWL_CFG_ANY || 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1358 dev_info->device == pdev->device) && d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1359 (dev_info->subdevice == (u16)IWL_CFG_ANY || d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1360 dev_info->subdevice == pdev->subsystem_device) && d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1361 (dev_info->mac_type == (u16)IWL_CFG_ANY || d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1362 dev_info->mac_type == d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1363 CSR_HW_REV_TYPE(iwl_trans->hw_rev)) && be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1364 (dev_info->mac_step == (u8)IWL_CFG_ANY || be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1365 dev_info->mac_step == be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1366 CSR_HW_REV_STEP(iwl_trans->hw_rev)) && d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1367 (dev_info->rf_type == (u16)IWL_CFG_ANY || d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1368 dev_info->rf_type == d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1369 CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id)) && b964bfd048d3ab drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-02-10 1370 (dev_info->cdb == IWL_CFG_NO_CDB || b964bfd048d3ab drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-02-10 1371 CSR_HW_RFID_IS_CDB(iwl_trans->hw_rf_id)) && f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1372 (dev_info->rf_id == (u8)IWL_CFG_ANY || f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1373 dev_info->rf_id == f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1374 IWL_SUBDEVICE_RF_ID(pdev->subsystem_device)) && d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1375 (dev_info->no_160 == (u8)IWL_CFG_ANY || d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1376 dev_info->no_160 == 95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1377 IWL_SUBDEVICE_NO_160(pdev->subsystem_device)) && 95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1378 (dev_info->cores == (u8)IWL_CFG_ANY || 95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1379 dev_info->cores == 95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1380 IWL_SUBDEVICE_CORES(pdev->subsystem_device))) { 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1381 iwl_trans->cfg = dev_info->cfg; 0b295a1eb81f37 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1382 iwl_trans->name = dev_info->name; 2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1383 } 7d34a7d7da97bc drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-07-12 1384 } 7d34a7d7da97bc drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-07-12 1385 :::::: The code at line 1353 was first introduced by commit :::::: 1f171f4f1437f7811b7610ef959e4340b9212a11 iwlwifi: Add support for getting rf id with blank otp :::::: TO: Matti Gottlieb <[email protected]> :::::: CC: Luca Coelho <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
