diff options
author | Sreenivasa Honnur <Sreenivasa.Honnur@neterion.com> | 2009-07-01 17:14:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-07-05 22:16:28 -0400 |
commit | bd9ee6808b6c9106fd8046693c544d081746184b (patch) | |
tree | 307fa3aefbea6c79de811695f8ddd5e758eebeb8 /drivers/net/vxge | |
parent | 914d0d714fa472d7f99ef899a8180628ecdcd23c (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.c | 3 |
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)) |