summaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2x_main.c
diff options
context:
space:
mode:
authorEilon Greenstein2009-01-14 07:43:52 +0100
committerDavid S. Miller2009-01-20 01:20:08 +0100
commit693fc0d14334859430733ab902adac182fdd8153 (patch)
tree8e7603e50079fca08d3e27c4dfdbe2595dedafea /drivers/net/bnx2x_main.c
parentbnx2x: Free IRQ (diff)
downloadkernel-qcow2-linux-693fc0d14334859430733ab902adac182fdd8153.tar.gz
kernel-qcow2-linux-693fc0d14334859430733ab902adac182fdd8153.tar.xz
kernel-qcow2-linux-693fc0d14334859430733ab902adac182fdd8153.zip
bnx2x: Handling probe failures
Failures in the probe not handled correctly - separate the flow to handle different failures Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x_main.c')
-rw-r--r--drivers/net/bnx2x_main.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index ce98ecf8cb1c..911067586a4a 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -10269,17 +10269,15 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
return rc;
}
- rc = register_netdev(dev);
- if (rc) {
- dev_err(&pdev->dev, "Cannot register net device\n");
- goto init_one_exit;
- }
-
pci_set_drvdata(pdev, dev);
rc = bnx2x_init_bp(bp);
+ if (rc)
+ goto init_one_exit;
+
+ rc = register_netdev(dev);
if (rc) {
- unregister_netdev(dev);
+ dev_err(&pdev->dev, "Cannot register net device\n");
goto init_one_exit;
}