]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ice: Fix XDP memory leak when NIC is brought up and down
authorKamil Maziarz <kamil.maziarz@intel.com>
Tue, 6 Jun 2023 10:33:58 +0000 (12:33 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Thu, 8 Jun 2023 18:41:40 +0000 (11:41 -0700)
Fix the buffer leak that occurs while switching
the port up and down with traffic and XDP by
checking for an active XDP program and freeing all empty TX buffers.

Fixes: efc2214b6047 ("ice: Add support for XDP")
Signed-off-by: Kamil Maziarz <kamil.maziarz@intel.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c

index a1f7c8edc22f341eb68bb30a507981c7c4baaa2d..03513d4871ab36532a54eaf89092d6b2f62c8cc0 100644 (file)
@@ -7056,6 +7056,10 @@ int ice_down(struct ice_vsi *vsi)
        ice_for_each_txq(vsi, i)
                ice_clean_tx_ring(vsi->tx_rings[i]);
 
+       if (ice_is_xdp_ena_vsi(vsi))
+               ice_for_each_xdp_txq(vsi, i)
+                       ice_clean_tx_ring(vsi->xdp_rings[i]);
+
        ice_for_each_rxq(vsi, i)
                ice_clean_rx_ring(vsi->rx_rings[i]);