summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAjit Khaparde <ajit.khaparde@emulex.com>2011-04-06 09:53:13 +0400
committerDavid S. Miller <davem@davemloft.net>2011-04-06 23:40:18 +0400
commit2d5d4154650459b61a8e7097d186a89d89dab8ed (patch)
tree1a68a7ce66ee6fae5731e53287f7e3c54209c394 /drivers
parent1e58148670908e9fd180761c0eed3839b6778f01 (diff)
downloadlinux-2d5d4154650459b61a8e7097d186a89d89dab8ed.tar.xz
be2net: Fix a potential crash during shutdown.
adapter could remain uninitialized if probe fails for some reason. A null pointer access could cause a crash if be_shutdown is called after that. Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/benet/be_main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index a71163f1e34b..6e8e211d8afe 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -3141,12 +3141,14 @@ static int be_resume(struct pci_dev *pdev)
static void be_shutdown(struct pci_dev *pdev)
{
struct be_adapter *adapter = pci_get_drvdata(pdev);
- struct net_device *netdev = adapter->netdev;
- if (netif_running(netdev))
+ if (!adapter)
+ return;
+
+ if (netif_running(adapter->netdev))
cancel_delayed_work_sync(&adapter->work);
- netif_device_detach(netdev);
+ netif_device_detach(adapter->netdev);
be_cmd_reset_function(adapter);