]> err.no Git - linux-2.6/commitdiff
[PATCH] e1000: avoid leak when e1000_setup_loopback_test fails
authorJohn W. Linville <linville@tuxdriver.com>
Tue, 8 Nov 2005 20:45:02 +0000 (15:45 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 18 Nov 2005 18:52:39 +0000 (13:52 -0500)
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>
drivers/net/e1000/e1000_ethtool.c

index 8eae8ba27e84da532250b16756c60456e00dcee1..8584e9382c2cd634aaa138eb56bf98cf29497ed8 100644 (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;