i40evf: Allocate Rx buffers properly
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 18 Apr 2016 18:33:48 +0000 (11:33 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 6 May 2016 06:07:30 +0000 (23:07 -0700)
Allocate the correct number of RX buffers, and don't fiddle with
next_to_use. The common RX code handles all of this. This fixes a memory
leak of one page each time the driver is opened.

Change-Id: Id06eca353086e084921f047acad28c14745684ee
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>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 870bad8adeba8fd9609d67af82b39a5132ec38e5..b548dbe78cd3439bc0293c27283ee8a072536e2c 100644 (file)
@@ -990,9 +990,7 @@ static void i40evf_configure(struct i40evf_adapter *adapter)
        for (i = 0; i < adapter->num_active_queues; i++) {
                struct i40e_ring *ring = &adapter->rx_rings[i];
 
-               i40evf_alloc_rx_buffers(ring, ring->count);
-               ring->next_to_use = ring->count - 1;
-               writel(ring->next_to_use, ring->tail);
+               i40evf_alloc_rx_buffers(ring, I40E_DESC_UNUSED(ring));
        }
 }
 
@@ -2768,7 +2766,6 @@ static void i40evf_remove(struct pci_dev *pdev)
 
        iounmap(hw->hw_addr);
        pci_release_regions(pdev);
-
        i40evf_free_all_tx_resources(adapter);
        i40evf_free_all_rx_resources(adapter);
        i40evf_free_queues(adapter);