From: Nikita V. Shirokov Date: Wed, 18 Apr 2018 04:42:15 +0000 (-0700) Subject: bpf: make mlx4 compatible w/ bpf_xdp_adjust_tail X-Git-Tag: v4.18-rc1~114^2~417^2~3^2~8 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e5e0a59b7cd17244cb0c1d87112b0c9e5e2bfb39;p=users%2Fwilly%2Fxarray.git bpf: make mlx4 compatible w/ bpf_xdp_adjust_tail w/ bpf_xdp_adjust_tail helper xdp's data_end pointer could be changed as well (only "decrease" of pointer's location is going to be supported). changing of this pointer will change packet's size. for mlx4 driver we will just calculate packet's length unconditionally (the same way as it's already being done in mlx5) Acked-by: Alexei Starovoitov Acked-by: Tariq Toukan Signed-off-by: Nikita V. Shirokov Signed-off-by: Daniel Borkmann --- diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index 5c613c6663da..efc55feddc5c 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -775,8 +775,8 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud act = bpf_prog_run_xdp(xdp_prog, &xdp); + length = xdp.data_end - xdp.data; if (xdp.data != orig_data) { - length = xdp.data_end - xdp.data; frags[0].page_offset = xdp.data - xdp.data_hard_start; va = xdp.data;