--- /dev/null
+From 693fc0d14334859430733ab902adac182fdd8153 Mon Sep 17 00:00:00 2001
+From: Eilon Greenstein <eilong@broadcom.com>
+Date: Wed, 14 Jan 2009 06:43:52 +0000
+Subject: bnx2x: Handling probe failures
+Acked-by: Karsten Keil <kkeil@novell.com>
+Reference: bnc#472500
+
+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 | 12 +++++-------
+ 1 files changed, 5 insertions(+), 7 deletions(-)
+
+Index: linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
+===================================================================
+--- linux-2.6.27-bnx2x_2.orig/drivers/net/bnx2x_main.c
++++ linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c
+@@ -10272,17 +10272,15 @@ static int __devinit bnx2x_init_one(stru
+ 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;
+ }
+