bnx2x: prevent crash in shutdown flow with CNIC
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 12 Aug 2013 23:25:03 +0000 (02:25 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Aug 2013 23:04:28 +0000 (16:04 -0700)
There might be a crash as during shutdown flow CNIC might try
to access resources already freed by bnx2x.
Change bnx2x_close() into dev_close() in __bnx2x_remove (shutdown flow)
to guarantee CNIC is notified of the device's change of status.

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index 339c388e4a18d8ded53c0cdf1454ded9f5ff8f8d..955d6cfd9cb7c48179b587a7bf5239a572b7e9e8 100644 (file)
@@ -12838,8 +12838,7 @@ static void __bnx2x_remove(struct pci_dev *pdev,
                unregister_netdev(dev);
        } else {
                rtnl_lock();
-               if (netif_running(dev))
-                       bnx2x_close(dev);
+               dev_close(dev);
                rtnl_unlock();
        }