RDMA/qedr: Fix error return code in qedr_iw_connect()
authorWang Wensheng <wangwensheng4@huawei.com>
Thu, 8 Apr 2021 11:31:35 +0000 (11:31 +0000)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 12 Apr 2021 18:00:17 +0000 (15:00 -0300)
Fix to return a negative error code from the error handling case instead
of 0, as done elsewhere in this function.

Fixes: 82af6d19d8d9 ("RDMA/qedr: Fix synchronization methods and memory leaks in qedr")
Link: https://lore.kernel.org/r/20210408113135.92165-1-wangwensheng4@huawei.com
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Wensheng <wangwensheng4@huawei.com>
Acked-by: Michal KalderonĀ <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/qedr/qedr_iw_cm.c

index c4bc587..1715fbe 100644 (file)
@@ -636,8 +636,10 @@ int qedr_iw_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
        memcpy(in_params.local_mac_addr, dev->ndev->dev_addr, ETH_ALEN);
 
        if (test_and_set_bit(QEDR_IWARP_CM_WAIT_FOR_CONNECT,
-                            &qp->iwarp_cm_flags))
+                            &qp->iwarp_cm_flags)) {
+               rc = -ENODEV;
                goto err; /* QP already being destroyed */
+       }
 
        rc = dev->ops->iwarp_connect(dev->rdma_ctx, &in_params, &out_params);
        if (rc) {