diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c index 89d2bef964698..e04809a4c5d35 100644 --- a/net/xdp/xsk.c +++ b/net/xdp/xsk.c @@ -802,8 +802,11 @@ static int __xsk_generic_xmit(struct sock *sk) * if there is space in it. This avoids having to implement * any buffering in the Tx path. */ - if (xsk_cq_reserve_addr_locked(xs->pool, desc.addr)) + err = xsk_cq_reserve_addr_locked(xs->pool, desc.addr); + if (err) { + err = -EAGAIN; goto out; + } skb = xsk_build_skb(xs, &desc); if (IS_ERR(skb)) {