diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c index af96f813c075..c491dd8e67cd 100644 --- a/net/smc/smc_core.c +++ b/net/smc/smc_core.c @@ -1089,7 +1089,9 @@ static void smc_conn_abort_work(struct work_struct *work) abort_work); struct smc_sock *smc = container_of(conn, struct smc_sock, conn); + lock_sock(&smc->sk); smc_conn_kill(conn, true); + release_sock(&smc->sk); sock_put(&smc->sk); /* sock_hold done by schedulers of abort_work */ }