diff options
author | Steve Wise <swise@opengridcomputing.com> | 2018-11-10 14:27:39 +0100 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2018-11-22 00:15:19 +0100 |
commit | 9828ca654b52848e7eb7dcc9b0994ff130dd4546 (patch) | |
tree | d2eda0b8bc6385ed5d9ac0653b72775a3cd75eea /drivers/infiniband/hw/cxgb4/cm.c | |
parent | IB/core: Make function ib_fmr_pool_unmap return void (diff) | |
download | linux-9828ca654b52848e7eb7dcc9b0994ff130dd4546.tar.xz linux-9828ca654b52848e7eb7dcc9b0994ff130dd4546.zip |
iw_cxgb4: only reconnect with MPAv1 if the peer aborts
Only retry connection setup with MPAv1 if the peer actually aborted the
connection upon receiving the MPAv2 start message. This avoids retrying
with MPAv1 in the case where the connection was aborted due to retransmit
timeouts.
Fixes: d2fe99e86bb2 ("RDMA/cxgb4: Add support for MPAv2 Enhanced RDMA Negotiation")
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/cm.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb4/cm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c index 615413bd3e8d..659175c9ae91 100644 --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c @@ -2795,7 +2795,8 @@ static int peer_abort(struct c4iw_dev *dev, struct sk_buff *skb) break; case MPA_REQ_SENT: (void)stop_ep_timer(ep); - if (mpa_rev == 1 || (mpa_rev == 2 && ep->tried_with_mpa_v1)) + if (status != CPL_ERR_CONN_RESET || mpa_rev == 1 || + (mpa_rev == 2 && ep->tried_with_mpa_v1)) connect_reply_upcall(ep, -ECONNRESET); else { /* |