aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
authorVipul Pandya <vipul@chelsio.com>2013-01-07 08:11:59 -0500
committerRoland Dreier <roland@purestorage.com>2013-02-14 18:51:58 -0500
commitb3de6cfebc6167761c40947f05f4c817531f37d5 (patch)
treef3dca37f0533b1bd664129cc12ae582ba1c285d2 /drivers/infiniband/hw
parent7c0a33d61187a413f29f63d106b503b9c91680e8 (diff)
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>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r--drivers/infiniband/hw/cxgb4/cm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 06c3a527d6f8..37ea2fcf3b10 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -2010,6 +2010,7 @@ static int pass_accept_req(struct c4iw_dev *dev, struct sk_buff *skb)
2010 2010
2011 init_timer(&child_ep->timer); 2011 init_timer(&child_ep->timer);
2012 cxgb4_insert_tid(t, child_ep, hwtid); 2012 cxgb4_insert_tid(t, child_ep, hwtid);
2013 insert_handle(dev, &dev->hwtid_idr, child_ep, child_ep->hwtid);
2013 accept_cr(child_ep, peer_ip, skb, req); 2014 accept_cr(child_ep, peer_ip, skb, req);
2014 set_bit(PASS_ACCEPT_REQ, &child_ep->com.history); 2015 set_bit(PASS_ACCEPT_REQ, &child_ep->com.history);
2015 goto out; 2016 goto out;
@@ -2035,7 +2036,6 @@ static int pass_establish(struct c4iw_dev *dev, struct sk_buff *skb)
2035 ntohs(req->tcp_opt)); 2036 ntohs(req->tcp_opt));
2036 2037
2037 set_emss(ep, ntohs(req->tcp_opt)); 2038 set_emss(ep, ntohs(req->tcp_opt));
2038 insert_handle(dev, &dev->hwtid_idr, ep, ep->hwtid);
2039 2039
2040 dst_confirm(ep->dst); 2040 dst_confirm(ep->dst);
2041 state_set(&ep->com, MPA_REQ_WAIT); 2041 state_set(&ep->com, MPA_REQ_WAIT);