diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 27e2886433da..a9dacb00a344 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1222,7 +1222,7 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb, nlk = nlk_sk(sk); rmem = atomic_add_return(skb->truesize, &sk->sk_rmem_alloc); - if ((rmem == skb->truesize || rmem < READ_ONCE(sk->sk_rcvbuf)) && + if ((rmem == skb->truesize || rmem <= READ_ONCE(sk->sk_rcvbuf)) && !test_bit(NETLINK_S_CONGESTED, &nlk->state)) { netlink_skb_set_owner_r(skb, sk); return 0;