Subject: Re: [PATCH net-next 08/15] net/mlx5e: SHAMPO, Skipping on duplicate flush of the same SHAMPO SKB

From: Simon Horman <[email-masked]>
Date: Wed, 5 Jun 2024 14:48:23 +0100

On Tue, May 28, 2024 at 05:28:00PM +0300, Tariq Toukan wrote:
> From: Yoray Zack <[email-masked]>
> 
> SHAMPO SKB can be flushed in mlx5e_shampo_complete_rx_cqe().
> If the SKB was flushed, rq->hw_gro_data->skb was also set to NULL.
> 
> We can skip on flushing the SKB in mlx5e_shampo_flush_skb
> if rq->hw_gro_data->skb == NULL.
> 
> Signed-off-by: Yoray Zack <[email-masked]>
> Signed-off-by: Tariq Toukan <[email-masked]>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> index 1e3a5b2afeae..3f76c33aada0 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> @@ -2334,7 +2334,7 @@ static void mlx5e_handle_rx_cqe_mpwrq_shampo(struct mlx5e_rq *rq, struct mlx5_cq
>  	}
>  
>  	mlx5e_shampo_complete_rx_cqe(rq, cqe, cqe_bcnt, *skb);
> -	if (flush)
> +	if (flush && rq->hw_gro_data->skb)
>  		mlx5e_shampo_flush_skb(rq, cqe, match);

nit: It seems awkward to reach inside rq like this
     when mlx5e_shampo_flush_skb already deals with the skb in question.

     Would it make esnse for the NULL skb check to
     be moved inside mlx5e_shampo_flush_skb() ?

>  free_hd_entry:
>  	if (likely(head_size))
> -- 
> 2.31.1