bpf_prog_run_xdp() may change the start/length values in xdp. Adjust the umem handle so it reflects the possibly updated values.
Signed-off-by: Jonathan Lemon <jonathan.le...@gmail.com> --- drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c index 78f39af8541f..9ae1eb8239e7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c @@ -115,7 +115,7 @@ bool mlx5e_xdp_handle(struct mlx5e_rq *rq, struct mlx5e_dma_info *di, act = bpf_prog_run_xdp(prog, &xdp); if (xsk) - xdp.handle = di->xsk.handle + *rx_headroom; + xdp.handle += xdp.data - xdp.data_hard_start; switch (act) { case XDP_PASS: *rx_headroom = xdp.data - xdp.data_hard_start; -- 2.17.1