aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/veth.c
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2021-12-23 16:09:58 -0800
committerJakub Kicinski <kuba@kernel.org>2021-12-23 16:09:58 -0800
commit8b3f91332291fa280a56215f5189baca185998f5 (patch)
treeb89f58972c80ffacf57c4c9cedb5b4b03473c5be /drivers/net/veth.c
parentMerge tag 'wireless-drivers-next-2021-12-23' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next (diff)
parentnet: stmmac: dwmac-visconti: Fix value of ETHER_CLK_SEL_FREQ_SEL_2P5M (diff)
downloadwireguard-linux-8b3f91332291fa280a56215f5189baca185998f5.tar.xz
wireguard-linux-8b3f91332291fa280a56215f5189baca185998f5.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
include/net/sock.h commit 8f905c0e7354 ("inet: fully convert sk->sk_rx_dst to RCU rules") commit 43f51df41729 ("net: move early demux fields close to sk_refcnt") https://lore.kernel.org/all/20211222141641.0caa0ab3@canb.auug.org.au/ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/veth.c')
-rw-r--r--drivers/net/veth.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 38f6da24f460..a4be530b3a1b 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -872,8 +872,12 @@ static int veth_xdp_rcv(struct veth_rq *rq, int budget,
stats->xdp_bytes += skb->len;
skb = veth_xdp_rcv_skb(rq, skb, bq, stats);
- if (skb)
- napi_gro_receive(&rq->xdp_napi, skb);
+ if (skb) {
+ if (skb_shared(skb) || skb_unclone(skb, GFP_ATOMIC))
+ netif_receive_skb(skb);
+ else
+ napi_gro_receive(&rq->xdp_napi, skb);
+ }
}
done++;
}