summaryrefslogtreecommitdiffstats
path: root/drivers/net/veth.c
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2021-04-09 13:04:37 +0200
committerDavid S. Miller <davem@davemloft.net>2021-04-11 16:39:28 -0700
commitc75fb320d482a5ce6e522378d137fd2c3bf79225 (patch)
tree72238a58f381c016d1f32b1fe01bd833a6ae47e5 /drivers/net/veth.c
parent7dc85b599ae17fb705ffae1b7321ace4b3056aeb (diff)
downloadlinux-c75fb320d482a5ce6e522378d137fd2c3bf79225.tar.gz
linux-c75fb320d482a5ce6e522378d137fd2c3bf79225.tar.bz2
linux-c75fb320d482a5ce6e522378d137fd2c3bf79225.zip
veth: use skb_orphan_partial instead of skb_orphan
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>
Diffstat (limited to 'drivers/net/veth.c')
-rw-r--r--drivers/net/veth.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 9e525646df1d..ce085659d55f 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -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);