RDMA/iw_cxgb4: in process_timeout() don't move ep state to ABORTING
Moving the state to ABORTING causes the ep to get stuck because c4iw_ep_timeout() thinks the ABORT has already been done. So leave the state alone and let c4iw_ep_disconnect() do the right thing given the ep state. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
caa6c9f247
commit
8a70f812b1
1 changed files with 0 additions and 3 deletions
|
@ -3971,12 +3971,10 @@ static void process_timeout(struct c4iw_ep *ep)
|
||||||
set_bit(TIMEDOUT, &ep->com.history);
|
set_bit(TIMEDOUT, &ep->com.history);
|
||||||
switch (ep->com.state) {
|
switch (ep->com.state) {
|
||||||
case MPA_REQ_SENT:
|
case MPA_REQ_SENT:
|
||||||
__state_set(&ep->com, ABORTING);
|
|
||||||
connect_reply_upcall(ep, -ETIMEDOUT);
|
connect_reply_upcall(ep, -ETIMEDOUT);
|
||||||
break;
|
break;
|
||||||
case MPA_REQ_WAIT:
|
case MPA_REQ_WAIT:
|
||||||
case MPA_REP_SENT:
|
case MPA_REP_SENT:
|
||||||
__state_set(&ep->com, ABORTING);
|
|
||||||
break;
|
break;
|
||||||
case CLOSING:
|
case CLOSING:
|
||||||
case MORIBUND:
|
case MORIBUND:
|
||||||
|
@ -3986,7 +3984,6 @@ static void process_timeout(struct c4iw_ep *ep)
|
||||||
ep->com.qp, C4IW_QP_ATTR_NEXT_STATE,
|
ep->com.qp, C4IW_QP_ATTR_NEXT_STATE,
|
||||||
&attrs, 1);
|
&attrs, 1);
|
||||||
}
|
}
|
||||||
__state_set(&ep->com, ABORTING);
|
|
||||||
close_complete_upcall(ep, -ETIMEDOUT);
|
close_complete_upcall(ep, -ETIMEDOUT);
|
||||||
break;
|
break;
|
||||||
case ABORTING:
|
case ABORTING:
|
||||||
|
|
Loading…
Reference in a new issue