]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iw_cxgb4: only reconnect with MPAv1 if the peer aborts
authorSteve Wise <swise@opengridcomputing.com>
Sat, 10 Nov 2018 13:27:39 +0000 (05:27 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Dec 2019 07:51:32 +0000 (08:51 +0100)
[ Upstream commit 9828ca654b52848e7eb7dcc9b0994ff130dd4546 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/cxgb4/cm.c

index a5ff1f0f2073e06b2f337fb66ef84ef8ddf9d757..4dcc92d11609728b1bc3136068ffb6730ff04693 100644 (file)
@@ -2798,7 +2798,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 {
                        /*