summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/xdp/xsk.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index af3c5752bb63..770ba4695a9d 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -821,8 +821,10 @@ static struct sk_buff *xsk_build_skb_zerocopy(struct xdp_sock *xs,
skb_reserve(skb, hr);
if (desc->options & XDP_TX_METADATA) {
err = xsk_skb_metadata(skb, buffer, desc, pool, hr);
- if (unlikely(err))
+ if (unlikely(err)) {
+ kfree_skb(skb);
return ERR_PTR(err);
+ }
}
} else {
struct xsk_addrs *xsk_addr;