|
@@ -267,6 +267,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
const struct iwl_cfg *cfg = (struct iwl_cfg *)(ent->driver_data);
|
|
|
struct iwl_trans *iwl_trans;
|
|
|
struct iwl_trans_pcie *trans_pcie;
|
|
|
+ int ret;
|
|
|
|
|
|
iwl_trans = iwl_trans_pcie_alloc(pdev, ent, cfg);
|
|
|
if (iwl_trans == NULL)
|
|
@@ -276,11 +277,15 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
|
|
|
trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans);
|
|
|
trans_pcie->drv = iwl_drv_start(iwl_trans, cfg);
|
|
|
- if (!trans_pcie->drv)
|
|
|
+
|
|
|
+ if (IS_ERR_OR_NULL(trans_pcie->drv)) {
|
|
|
+ ret = PTR_ERR(trans_pcie->drv);
|
|
|
goto out_free_trans;
|
|
|
+ }
|
|
|
|
|
|
/* register transport layer debugfs here */
|
|
|
- if (iwl_trans_dbgfs_register(iwl_trans, iwl_trans->dbgfs_dir))
|
|
|
+ ret = iwl_trans_dbgfs_register(iwl_trans, iwl_trans->dbgfs_dir);
|
|
|
+ if (ret)
|
|
|
goto out_free_drv;
|
|
|
|
|
|
return 0;
|
|
@@ -290,7 +295,7 @@ out_free_drv:
|
|
|
out_free_trans:
|
|
|
iwl_trans_pcie_free(iwl_trans);
|
|
|
pci_set_drvdata(pdev, NULL);
|
|
|
- return -EFAULT;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static void __devexit iwl_pci_remove(struct pci_dev *pdev)
|