net/mlx5e: RX, Fix XDP_TX page release for legacy rq nonlinear case
authorDragos Tatulea <dtatulea@nvidia.com>
Mon, 3 Apr 2023 17:03:11 +0000 (20:03 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 21 Apr 2023 01:35:49 +0000 (18:35 -0700)
commit40afb3b14496afb01d5b3d028444e09d29b95559
tree3aa4e2d396a72bf8f3257bc47c57affc9f1f7ef3
parentc8e9090233a70b8bbd8a73521a7a81856695732f
net/mlx5e: RX, Fix XDP_TX page release for legacy rq nonlinear case

When the XDP handler marks the data for transmission (XDP_TX),
it is incorrect to release the page fragment. Instead, the
fragments should be marked as MLX5E_WQE_FRAG_SKIP_RELEASE
because XDP will release the page directly to the page_pool
(page_pool_put_defragged_page) after TX completion.

The linear case already does this. This patch fixes the
nonlinear part as well.

Also, the looping over the fragments was incorrect: When handling
pages after XDP_TX in the legacy rq nonlinear case, the loop was
skipping the first wqe fragment.

Fixes: 3f93f82988bc ("net/mlx5e: RX, Defer page release in legacy rq for better recycling")
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c