iw_cxgb4: stop MPA_REPLY timer when disconnecting
authorSteve Wise <swise@opengridcomputing.com>
Fri, 29 Jul 2016 15:38:44 +0000 (08:38 -0700)
committerDoug Ledford <dledford@redhat.com>
Tue, 2 Aug 2016 17:15:17 +0000 (13:15 -0400)
commit12eb5137edecfd8fb6d23dacec2a3630e729736f
tree0b297072f4f3c2378cf552fbfefc768075dcabd0
parentcea05eadded0d4eb59f7be6e1f1560eb6bfde2bf
iw_cxgb4: stop MPA_REPLY timer when disconnecting

There exists a race where the application can setup a connection
and then disconnect it before iw_cxgb4 processes the fw4_ack
message.  For passive side connections, the fw4_ack message is
used to know when to stop the ep timer for MPA_REPLY messages.

If the application disconnects before the fw4_ack is handled then
c4iw_ep_disconnect() needs to clean up the timer state and stop the
timer before restarting it for the disconnect timer.  Failure to do this
results in a "timer already started" message and a premature stopping
of the disconnect timer.

Fixes: e4b76a2 ("RDMA/iw_cxgb4: stop_ep_timer() after MPA negotiation")
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c