Commit fc8ce84b authored by Xuan Zhuo's avatar Xuan Zhuo Committed by Jakub Kicinski
Browse files

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: default avatarXuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: default avatarJason Wang <jasowang@redhat.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent c5f3e72f
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -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);