[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:
John W. Linville 2005-11-08 15:45:02 -05:00
parent cd52d1ee9a
commit e98fc4aae1

View File

@ -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;