浏览代码

[PATCH] e1000: avoid leak when e1000_setup_loopback_test fails

In e1000_loopback_test, make sure to call e1000_free_desc_rings if
e1000_setup_loopback_test fails.  Currently in that case it will not
get called, causing a leak.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
John W. Linville 19 年之前
父节点
当前提交
e98fc4aae1
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/net/e1000/e1000_ethtool.c

+ 3 - 1
drivers/net/e1000/e1000_ethtool.c

@@ -1440,9 +1440,11 @@ static int
 e1000_loopback_test(struct e1000_adapter *adapter, uint64_t *data)
 {
 	if((*data = e1000_setup_desc_rings(adapter))) goto err_loopback;
-	if((*data = e1000_setup_loopback_test(adapter))) goto err_loopback;
+	if((*data = e1000_setup_loopback_test(adapter)))
+		goto err_loopback_setup;
 	*data = e1000_run_loopback_test(adapter);
 	e1000_loopback_cleanup(adapter);
+err_loopback_setup:
 	e1000_free_desc_rings(adapter);
 err_loopback:
 	return *data;