From: Nikita V. Shirokov Date: Wed, 18 Apr 2018 04:42:16 +0000 (-0700) Subject: bpf: make bnxt compatible w/ bpf_xdp_adjust_tail X-Git-Tag: v4.1.12-124.31.3~497 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e3c2704e6e6ca97b830e5fa66795e937f14bb902;p=users%2Fjedix%2Flinux-maple.git bpf: make bnxt 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 bnxt driver we will just calculate packet's length unconditionally Acked-by: Alexei Starovoitov Signed-off-by: Nikita V. Shirokov Acked-by: Michael Chan Signed-off-by: Daniel Borkmann (cherry picked from commit b968e735c79767a3c91217fbae691581aa557d8d) Orabug: 27988326 Signed-off-by: Somasundaram Krishnasamy Reviewed-by: Brian Maly Signed-off-by: Brian Maly --- diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c index e1d29d047e22..c8f38f395643 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c @@ -117,10 +117,10 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons, if (tx_avail != bp->tx_ring_size) *event &= ~BNXT_RX_EVENT; + *len = xdp.data_end - xdp.data; if (orig_data != xdp.data) { offset = xdp.data - xdp.data_hard_start; *data_ptr = xdp.data_hard_start + offset; - *len = xdp.data_end - xdp.data; } switch (act) { case XDP_PASS: