From 44e1d795f8408c9fde195484a3ae0d9ce2d533d3 Mon Sep 17 00:00:00 2001 From: Eldad Zinger Date: Sun, 3 Oct 2010 11:58:06 +0200 Subject: [PATCH] sdp: extend socket locking scope in dreq timeout function Signed-off-by: Eldad Zinger --- drivers/infiniband/ulp/sdp/sdp_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 04e8dca7884b9..96628b65e6948 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -1075,14 +1075,15 @@ static void sdp_dreq_wait_timeout_work(struct work_struct *work) ssk->dreq_wait_timeout = 0; sdp_exch_state(sk, TCPF_LAST_ACK | TCPF_FIN_WAIT1, TCP_TIME_WAIT); - release_sock(sk); - if (ssk->id) { sdp_dbg(sk, "Destroyed QP\n"); ssk->qp_active = 0; rdma_disconnect(ssk->id); - } else + release_sock(sk); + } else { + release_sock(sk); sock_put(sk, SOCK_REF_CMA); + } out: sock_put(sk, SOCK_REF_DREQ_TO); -- 2.50.1