Due to miss-use of sdp_disconnect rx cq is not armed after disconnect is
sent
Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
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;
}
}
- 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);