diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index 558b873193c68ac6fe4a1866a060d6c89f19b1ee..57f067685ae9c14359b6de2ecacf9a65f5ced3ca 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -4301,6 +4301,10 @@ int smc_inet_release(struct socket *sock) sock_hold(sk); /* sock put bellow */ + /* we can not decide it during smc_destruct */ + if (smc_sk_state(sk) == SMC_LISTEN) + smc_sock_cleanup_negotiator_ops(smc, 0); + smc_inet_sock_try_disable_smc(sk, SMC_NEGOTIATION_ABORT_FLAG); /* check fallback ? */