int ret;
 
        iwl_trans = iwl_trans_pcie_alloc(pdev, ent, cfg);
-       if (iwl_trans == NULL)
-               return -ENOMEM;
+       if (IS_ERR(iwl_trans))
+               return PTR_ERR(iwl_trans);
 
        pci_set_drvdata(pdev, iwl_trans);
 
 
 
        trans = kzalloc(sizeof(struct iwl_trans) +
                        sizeof(struct iwl_trans_pcie), GFP_KERNEL);
-
-       if (!trans)
-               return NULL;
+       if (!trans) {
+               err = -ENOMEM;
+               goto out;
+       }
 
        trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 
                                       PCIE_LINK_STATE_CLKPM);
        }
 
-       if (pci_enable_device(pdev)) {
-               err = -ENODEV;
+       err = pci_enable_device(pdev);
+       if (err)
                goto out_no_pci;
-       }
 
        pci_set_master(pdev);
 
                                  SLAB_HWCACHE_ALIGN,
                                  NULL);
 
-       if (!trans->dev_cmd_pool)
+       if (!trans->dev_cmd_pool) {
+               err = -ENOMEM;
                goto out_pci_disable_msi;
+       }
 
        trans_pcie->inta_mask = CSR_INI_SET_MASK;
 
        if (iwl_pcie_alloc_ict(trans))
                goto out_free_cmd_pool;
 
-       if (request_threaded_irq(pdev->irq, iwl_pcie_isr_ict,
-                                iwl_pcie_irq_handler,
-                                IRQF_SHARED, DRV_NAME, trans)) {
+       err = request_threaded_irq(pdev->irq, iwl_pcie_isr_ict,
+                                  iwl_pcie_irq_handler,
+                                  IRQF_SHARED, DRV_NAME, trans);
+       if (err) {
                IWL_ERR(trans, "Error allocating IRQ %d\n", pdev->irq);
                goto out_free_ict;
        }
        pci_disable_device(pdev);
 out_no_pci:
        kfree(trans);
-       return NULL;
+out:
+       return ERR_PTR(err);
 }