From: Gioh Kim <[email protected]>

[ Upstream commit f553e7601df9566ba7644541fc09152a3a81f793 ]

When rtrs_rdma_conn_established returns error (non-zero value), the error
value is stored in con->cm_err and it cannot trigger
rtrs_rdma_error_recovery. Finally the error of rtrs_rdma_con_established
will be forgot.

Fixes: 6a98d71daea1 ("RDMA/rtrs: client: main functionality")
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Gioh Kim <[email protected]>
Signed-off-by: Jack Wang <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/infiniband/ulp/rtrs/rtrs-clt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c 
b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
index 3cc957fea93ee..d54a77ebe1184 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
@@ -1835,8 +1835,8 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id 
*cm_id,
                cm_err = rtrs_rdma_route_resolved(con);
                break;
        case RDMA_CM_EVENT_ESTABLISHED:
-               con->cm_err = rtrs_rdma_conn_established(con, ev);
-               if (likely(!con->cm_err)) {
+               cm_err = rtrs_rdma_conn_established(con, ev);
+               if (likely(!cm_err)) {
                        /*
                         * Report success and wake up. Here we abuse state_wq,
                         * i.e. wake up without state change, but we set cm_err.
-- 
2.27.0



Reply via email to