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 <xuanz...@linux.alibaba.com>
Acked-by: Jason Wang <jasow...@redhat.com>
---
 drivers/net/virtio_net.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 3b0f13ab6ccb..b8ec642899c9 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -945,9 +945,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))
@@ -980,14 +978,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;
@@ -1004,7 +1000,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);
-- 
2.32.0.3.g01195cf9f

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to