From: Amir Vadai Date: Wed, 16 Jun 2010 08:46:56 +0000 (+0300) Subject: sdp: Fix wrong use of ssk->sdp_disconnect X-Git-Tag: v4.1.12-92~264^2~5^2~166 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b98a6de674c60eeb3271375c7c3cb55912af64f2;p=users%2Fjedix%2Flinux-maple.git sdp: Fix wrong use of ssk->sdp_disconnect Due to miss-use of sdp_disconnect rx cq is not armed after disconnect is sent Signed-off-by: Amir Vadai --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 1fe68ce60f23..37200011caa1 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -375,7 +375,7 @@ struct sdp_sock { unsigned keepalive_rx_head; int destructed_already; - int sdp_disconnect; + int sdp_disconnect; /* Need to send SDP_MID_DISCONNECT */ int id_destroyed_already; /* for sdp_remove_device() only */ struct sdp_rx_ring rx_ring; diff --git a/drivers/infiniband/ulp/sdp/sdp_rx.c b/drivers/infiniband/ulp/sdp/sdp_rx.c index 2c6f80de8eab..92eb692ca06d 100644 --- a/drivers/infiniband/ulp/sdp/sdp_rx.c +++ b/drivers/infiniband/ulp/sdp/sdp_rx.c @@ -871,7 +871,7 @@ int sdp_process_rx(struct sdp_sock *ssk) } } - if (ssk->sdp_disconnect || ssk->tx_sa) + if (unlikely(sk->sk_state != TCP_ESTABLISHED || ssk->tx_sa)) sdp_arm_rx_cq(sk); rx_ring_unlock(&ssk->rx_ring);