浏览代码

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>
Michael Chan 16 年之前
父节点
当前提交
6fefb65e78
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      drivers/net/bnx2.c

+ 7 - 2
drivers/net/bnx2.c

@@ -6992,9 +6992,14 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
 		int rc;
 		int rc;
 
 
 		rc = bnx2_alloc_mem(bp);
 		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;
 			return rc;
-		bnx2_init_nic(bp, 0);
+		}
 		bnx2_netif_start(bp);
 		bnx2_netif_start(bp);
 	}
 	}
 	return 0;
 	return 0;