diff mbox series

[2/2,net-next] mlx5: Adjust handle based on xdp values.

Message ID 20190417195605.2810852-2-jonathan.lemon@gmail.com
State Awaiting Upstream
Delegated to: David Miller
Headers show
Series [1/2,net-next] mlx5: Set AF_XDP data pointer correctly. | expand

Commit Message

Jonathan Lemon April 17, 2019, 7:56 p.m. UTC
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.lemon@gmail.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

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;