RDMA/cxgb4: Insert hwtid in pass_accept_req instead in pass_establish
CPL_ABORT_REQ_RSS can come before TCP connection is established. In such case peer_abort was trying to remove the hwtid, which was not inserted. To avoid this we insert the hwtid when we are sure that we are surely going to send passive accept request. Signed-off-by: Vipul Pandya <vipul@chelsio.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
7c0a33d611
commit
b3de6cfebc
|
@ -2010,6 +2010,7 @@ static int pass_accept_req(struct c4iw_dev *dev, struct sk_buff *skb)
|
||||||
|
|
||||||
init_timer(&child_ep->timer);
|
init_timer(&child_ep->timer);
|
||||||
cxgb4_insert_tid(t, child_ep, hwtid);
|
cxgb4_insert_tid(t, child_ep, hwtid);
|
||||||
|
insert_handle(dev, &dev->hwtid_idr, child_ep, child_ep->hwtid);
|
||||||
accept_cr(child_ep, peer_ip, skb, req);
|
accept_cr(child_ep, peer_ip, skb, req);
|
||||||
set_bit(PASS_ACCEPT_REQ, &child_ep->com.history);
|
set_bit(PASS_ACCEPT_REQ, &child_ep->com.history);
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -2035,7 +2036,6 @@ static int pass_establish(struct c4iw_dev *dev, struct sk_buff *skb)
|
||||||
ntohs(req->tcp_opt));
|
ntohs(req->tcp_opt));
|
||||||
|
|
||||||
set_emss(ep, ntohs(req->tcp_opt));
|
set_emss(ep, ntohs(req->tcp_opt));
|
||||||
insert_handle(dev, &dev->hwtid_idr, ep, ep->hwtid);
|
|
||||||
|
|
||||||
dst_confirm(ep->dst);
|
dst_confirm(ep->dst);
|
||||||
state_set(&ep->com, MPA_REQ_WAIT);
|
state_set(&ep->com, MPA_REQ_WAIT);
|
||||||
|
|
Loading…
Reference in New Issue