summaryrefslogtreecommitdiff
path: root/drivers/net/virtio_net.c
diff options
context:
space:
mode:
authorXuan Zhuo <xuanzhuo@linux.alibaba.com>2023-05-08 14:14:13 +0800
committerJakub Kicinski <kuba@kernel.org>2023-05-09 19:44:27 -0700
commitfc8ce84b09bcc7306f3128f783967ecbfa617207 (patch)
treeaacbc8947a4d3389f9b194783fce736b8f7085ff /drivers/net/virtio_net.c
parentc5f3e72f04c02cc2a0671adbb16224e61dc4bd8a (diff)
downloadlwn-fc8ce84b09bcc7306f3128f783967ecbfa617207.tar.gz
lwn-fc8ce84b09bcc7306f3128f783967ecbfa617207.zip
virtio_net: small: remove the delta
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>
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);