bnx2: Close device if MTU change or ring size change fails.
authorMichael Chan <mchan@broadcom.com>
Fri, 21 Aug 2009 16:20:45 +0000 (16:20 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Aug 2009 00:48:47 +0000 (17:48 -0700)
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>
drivers/net/bnx2.c

index 9cfd46017e4e408926b271ab78af63e56ed86062..1d502e6f6c9c959e3a2f9a17fa5e27a8a377e859 100644 (file)
@@ -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;