diff mbox series

[iwl-net,v2] ice: Fix XDP memory leak when NIC is brought up and down

Message ID 20230606103358.10632-1-kamil.maziarz@intel.com
State Accepted
Delegated to: Anthony Nguyen
Headers show
Series [iwl-net,v2] ice: Fix XDP memory leak when NIC is brought up and down | expand

Commit Message

Kamil Maziarz June 6, 2023, 10:33 a.m. UTC
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>
---
v2: new Fixes tag
---
 drivers/net/ethernet/intel/ice/ice_main.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Maciej Fijalkowski June 6, 2023, 5:29 p.m. UTC | #1
On Tue, Jun 06, 2023 at 12:33:58PM +0200, Kamil Maziarz wrote:
> 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>

Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

thanks! this has been hiding there for a while.

> ---
> v2: new Fixes tag
> ---
>  drivers/net/ethernet/intel/ice/ice_main.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
> index a1f7c8edc22f..03513d4871ab 100644
> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> @@ -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]);
>  
> -- 
> 2.31.1
> 
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index a1f7c8edc22f..03513d4871ab 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -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]);