diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index e853728e1ff6..808ca542bfba 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1390,7 +1390,7 @@ static int netlink_broadcast_deliver(struct sock *sk, struct sk_buff *skb) rmem = atomic_add_return(skb->truesize, &sk->sk_rmem_alloc); rcvbuf = READ_ONCE(sk->sk_rcvbuf); - if ((rmem != skb->truesize || rmem <= rcvbuf) && + if ((rmem == skb->truesize || rmem <= rcvbuf) && !test_bit(NETLINK_S_CONGESTED, &nlk->state)) { netlink_skb_set_owner_r(skb, sk); __netlink_sendskb(sk, skb);