aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/vxge
diff options
context:
space:
mode:
authorSreenivasa Honnur <Sreenivasa.Honnur@neterion.com>2009-07-01 17:14:03 -0400
committerDavid S. Miller <davem@davemloft.net>2009-07-05 22:16:28 -0400
commitbd9ee6808b6c9106fd8046693c544d081746184b (patch)
tree307fa3aefbea6c79de811695f8ddd5e758eebeb8 /drivers/net/vxge
parent914d0d714fa472d7f99ef899a8180628ecdcd23c (diff)
vxge: check for card status before continuing in device close
- Fixed the crash in rmmod after vpath open failed when trying to change mtu. We should check for card status before continuing in device close. Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vxge')
-rw-r--r--drivers/net/vxge/vxge-main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index fa4dbc89e270..dd2add1d7566 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -2890,6 +2890,9 @@ int do_vxge_close(struct net_device *dev, int do_io)
2890 vdev = (struct vxgedev *)netdev_priv(dev); 2890 vdev = (struct vxgedev *)netdev_priv(dev);
2891 hldev = (struct __vxge_hw_device *) pci_get_drvdata(vdev->pdev); 2891 hldev = (struct __vxge_hw_device *) pci_get_drvdata(vdev->pdev);
2892 2892
2893 if (unlikely(!is_vxge_card_up(vdev)))
2894 return 0;
2895
2893 /* If vxge_handle_crit_err task is executing, 2896 /* If vxge_handle_crit_err task is executing,
2894 * wait till it completes. */ 2897 * wait till it completes. */
2895 while (test_and_set_bit(__VXGE_STATE_RESET_CARD, &vdev->state)) 2898 while (test_and_set_bit(__VXGE_STATE_RESET_CARD, &vdev->state))