As described by commit 
9c4c325252c5 ("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 
4bf9ffa0fb57 ("veth:
Orphan skb before GRO")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 
        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);