diff options
| -rw-r--r-- | net/xdp/xdp_umem.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c index 16d5f353163a..3049af269fbf 100644 --- a/net/xdp/xdp_umem.c +++ b/net/xdp/xdp_umem.c @@ -27,6 +27,9 @@ void xdp_add_sk_umem(struct xdp_umem *umem, struct xdp_sock *xs)  {  	unsigned long flags; +	if (!xs->tx) +		return; +  	spin_lock_irqsave(&umem->xsk_list_lock, flags);  	list_add_rcu(&xs->list, &umem->xsk_list);  	spin_unlock_irqrestore(&umem->xsk_list_lock, flags); @@ -36,6 +39,9 @@ void xdp_del_sk_umem(struct xdp_umem *umem, struct xdp_sock *xs)  {  	unsigned long flags; +	if (!xs->tx) +		return; +  	spin_lock_irqsave(&umem->xsk_list_lock, flags);  	list_del_rcu(&xs->list);  	spin_unlock_irqrestore(&umem->xsk_list_lock, flags);  | 

