mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-28 12:31:17 -05:00
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>
This commit is contained in:
committed by
Jakub Kicinski
parent
c5f3e72f04
commit
fc8ce84b09
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user