bnx2x: Handling probe failures
Eilon Greenstein [Wed, 14 Jan 2009 06:43:52 +0000 (06:43 +0000)]
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>

drivers/net/bnx2x_main.c

index ce98ecf..9110675 100644 (file)
@@ -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;
        }