virtio_net: small: remove the delta
authorXuan Zhuo <xuanzhuo@linux.alibaba.com>
Mon, 8 May 2023 06:14:13 +0000 (14:14 +0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 10 May 2023 02:44:27 +0000 (19:44 -0700)
In the case of XDP-PASS, skb_reserve uses the "delta" to compatible
non-XDP, now that is not shared between xdp and non-xdp, so we can
remove this logic.

Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/virtio_net.c

index bc3bf19..abf4ddc 100644 (file)
@@ -949,9 +949,7 @@ static struct sk_buff *receive_small_xdp(struct net_device *dev,
        unsigned int buflen;
        struct xdp_buff xdp;
        struct sk_buff *skb;
-       unsigned int delta = 0;
        unsigned int metasize = 0;
-       void *orig_data;
        u32 act;
 
        if (unlikely(hdr->hdr.gso_type))
@@ -984,14 +982,12 @@ static struct sk_buff *receive_small_xdp(struct net_device *dev,
        xdp_init_buff(&xdp, buflen, &rq->xdp_rxq);
        xdp_prepare_buff(&xdp, buf + VIRTNET_RX_PAD + vi->hdr_len,
                         xdp_headroom, len, true);
-       orig_data = xdp.data;
 
        act = virtnet_xdp_handler(xdp_prog, &xdp, dev, xdp_xmit, stats);
 
        switch (act) {
        case XDP_PASS:
                /* Recalculate length in case bpf program changed it */
-               delta = orig_data - xdp.data;
                len = xdp.data_end - xdp.data;
                metasize = xdp.data - xdp.data_meta;
                break;
@@ -1008,7 +1004,7 @@ static struct sk_buff *receive_small_xdp(struct net_device *dev,
        if (!skb)
                goto err;
 
-       skb_reserve(skb, headroom - delta);
+       skb_reserve(skb, xdp.data - buf);
        skb_put(skb, len);
        if (metasize)
                skb_metadata_set(skb, metasize);