Skip to content

Commit

Permalink
qlcnic: Return proper error codes from probe failure paths
Browse files Browse the repository at this point in the history
Fix error paths in probe to assign proper error codes to probe return value.

Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Sony Chacko authored and David S. Miller committed May 22, 2013
1 parent c2bba06 commit 0213558
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2016,8 +2016,10 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_enable_pcie_error_reporting(pdev);

ahw = kzalloc(sizeof(struct qlcnic_hardware_context), GFP_KERNEL);
if (!ahw)
if (!ahw) {
err = -ENOMEM;
goto err_out_free_res;
}

switch (ent->device) {
case PCI_DEVICE_ID_QLOGIC_QLE824X:
Expand Down Expand Up @@ -2053,6 +2055,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

adapter->qlcnic_wq = create_singlethread_workqueue("qlcnic");
if (adapter->qlcnic_wq == NULL) {
err = -ENOMEM;
dev_err(&pdev->dev, "Failed to create workqueue\n");
goto err_out_free_netdev;
}
Expand Down Expand Up @@ -2133,6 +2136,10 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_disable_msi;
}

err = qlcnic_get_act_pci_func(adapter);
if (err)
goto err_out_disable_mbx_intr;

err = qlcnic_setup_netdev(adapter, netdev, pci_using_dac);
if (err)
goto err_out_disable_mbx_intr;
Expand Down Expand Up @@ -2162,9 +2169,6 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
break;
}

if (qlcnic_get_act_pci_func(adapter))
goto err_out_disable_mbx_intr;

if (adapter->drv_mac_learn)
qlcnic_alloc_lb_filters_mem(adapter);

Expand Down

0 comments on commit 0213558

Please sign in to comment.