diff --git a/net/core/skmsg.c b/net/core/skmsg.c index 6187a83bd741..617f234d2396 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -775,6 +775,7 @@ struct sk_psock *sk_psock_init(struct sock *sk, int node) psock->sk_proto = prot; psock->saved_unhash = prot->unhash; psock->saved_destroy = prot->destroy; + WARN_ON_ONCE(psock->saved_destroy == sock_map_destroy); psock->saved_close = prot->close; psock->saved_write_space = sk->sk_write_space; diff --git a/net/core/sock_map.c b/net/core/sock_map.c index b0e96337a269..e9353d4618ea 100644 --- a/net/core/sock_map.c +++ b/net/core/sock_map.c @@ -1664,7 +1664,8 @@ void sock_map_destroy(struct sock *sk) sk_psock_stop(psock); sk_psock_put(sk, psock); } - if (WARN_ON_ONCE(saved_destroy == sock_map_destroy)) + if (WARN_ONCE(saved_destroy == sock_map_destroy, + "psock: %px, prot: %pS\n", psock, sk->sk_prot)) return; if (saved_destroy) saved_destroy(sk);