]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bpf: make bnxt compatible w/ bpf_xdp_adjust_tail
authorNikita V. Shirokov <tehnerd@tehnerd.com>
Wed, 18 Apr 2018 04:42:16 +0000 (21:42 -0700)
committerBrian Maly <brian.maly@oracle.com>
Mon, 8 Oct 2018 16:21:42 +0000 (12:21 -0400)
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 <ast@kernel.org>
Signed-off-by: Nikita V. Shirokov <tehnerd@tehnerd.com>
Acked-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
(cherry picked from commit b968e735c79767a3c91217fbae691581aa557d8d)
Orabug: 27988326

Signed-off-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Reviewed-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c

index e1d29d047e22fcfbc8e66af502e91ac7e40f4239..c8f38f3956436136c528800dd2cdddb3fbda96a0 100644 (file)
@@ -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: