Commit c75fb320 authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller
Browse files

veth: use skb_orphan_partial instead of skb_orphan



As described by commit 9c4c3252 ("skbuff: preserve sock
reference when scrubbing the skb."), orphaning a skb
in the TX path will cause OoO.

Let's use skb_orphan_partial() instead of skb_orphan(), so
that we keep the sk around for queue's selection sake and we
still avoid the problem fixed with commit 4bf9ffa0 ("veth:
Orphan skb before GRO")

Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7dc85b59
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -686,7 +686,7 @@ static struct sk_buff *veth_xdp_rcv_skb(struct veth_rq *rq,
	int mac_len, delta, off;
	struct xdp_buff xdp;

	skb_orphan(skb);
	skb_orphan_partial(skb);

	rcu_read_lock();
	xdp_prog = rcu_dereference(rq->xdp_prog);