summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2009-08-21 16:20:45 (GMT)
committerDavid S. Miller <davem@davemloft.net>2009-08-23 00:48:47 (GMT)
commit6fefb65e78f098c09d0ab877b2c70421e4c84116 (patch)
tree2b85b62679ee60f56fed3e86f96a91a33cbb25dd /drivers/net
parent3767546cc24de8f104e745d59a0a43a09d9267df (diff)
downloadlinux-6fefb65e78f098c09d0ab877b2c70421e4c84116.tar.xz
bnx2: Close device if MTU change or ring size change fails.
When unable to allocate memory for new MTU or new ring size, we need to close the device to prevent it from crashing. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/bnx2.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 9cfd460..1d502e6 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -6992,9 +6992,14 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
int rc;
rc = bnx2_alloc_mem(bp);
- if (rc)
+ if (!rc)
+ rc = bnx2_init_nic(bp, 0);
+
+ if (rc) {
+ bnx2_napi_enable(bp);
+ dev_close(bp->dev);
return rc;
- bnx2_init_nic(bp, 0);
+ }
bnx2_netif_start(bp);
}
return 0;