--- x/net/core/sock_map.c +++ y/net/core/sock_map.c @@ -209,7 +209,7 @@ static struct sk_psock *sock_map_psock_g rcu_read_lock(); psock = sk_psock(sk); if (psock) { - if (sk->sk_prot->close != sock_map_close) { + if (sk->sk_prot->close == sock_map_close) { psock = ERR_PTR(-EBUSY); goto out; }