]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40evf: free rings in remove function
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 12 Dec 2016 23:44:10 +0000 (15:44 -0800)
committerJack Vogel <jack.vogel@oracle.com>
Sat, 10 Jun 2017 01:57:02 +0000 (18:57 -0700)
When the i40evf_remove() calls netdev close, the device doesn't actually
close - it schedules the work for the watchdog to perform. Since we're
stopping the watchdog, this work doesn't get done. However, we're
resetting the part, so we can free resources after the reset request has
gone through. This plugs a memory leak.

Change-ID: Id5335dcaf76ce00d2a4c3d26e9faf711d7f051cf
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 26132523
(cherry picked from commit 8a68badd12a8b708a02d54cd5aac4d07851a6d5a)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 2cb602cf4948bd52fb616aca5c5334b975a3c738..2937cc95097b15f6722b03f7169de27111bdb196 100644 (file)
@@ -2866,7 +2866,8 @@ static void i40evf_remove(struct pci_dev *pdev)
                i40evf_request_reset(adapter);
                msleep(50);
        }
-
+       i40evf_free_all_tx_resources(adapter);
+       i40evf_free_all_rx_resources(adapter);
        i40evf_misc_irq_disable(adapter);
        i40evf_free_misc_irq(adapter);
        i40evf_reset_interrupt_capability(adapter);