summaryrefslogtreecommitdiff
path: root/drivers/net/virtio_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r--drivers/net/virtio_net.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index bc3bf190e614..abf4ddcb686e 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -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);