[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>
This commit is contained in:
Родитель
cd52d1ee9a
Коммит
e98fc4aae1
|
@ -1440,9 +1440,11 @@ static int
|
||||||
e1000_loopback_test(struct e1000_adapter *adapter, uint64_t *data)
|
e1000_loopback_test(struct e1000_adapter *adapter, uint64_t *data)
|
||||||
{
|
{
|
||||||
if((*data = e1000_setup_desc_rings(adapter))) goto err_loopback;
|
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);
|
*data = e1000_run_loopback_test(adapter);
|
||||||
e1000_loopback_cleanup(adapter);
|
e1000_loopback_cleanup(adapter);
|
||||||
|
err_loopback_setup:
|
||||||
e1000_free_desc_rings(adapter);
|
e1000_free_desc_rings(adapter);
|
||||||
err_loopback:
|
err_loopback:
|
||||||
return *data;
|
return *data;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче