]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/net/tun.c
bpf: make tun compatible w/ bpf_xdp_adjust_tail
[linux.git] / drivers / net / tun.c
index 1e58be152d5ccab79a8abcfb7510b943ce6ac343..901351a6ed21f1393ba6b2d912219c08698bbd36 100644 (file)
@@ -1696,6 +1696,7 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun,
                        return NULL;
                case XDP_PASS:
                        delta = orig_data - xdp.data;
+                       len = xdp.data_end - xdp.data;
                        break;
                default:
                        bpf_warn_invalid_xdp_action(act);
@@ -1716,7 +1717,7 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun,
        }
 
        skb_reserve(skb, pad - delta);
-       skb_put(skb, len + delta);
+       skb_put(skb, len);
        get_page(alloc_frag->page);
        alloc_frag->offset += buflen;