| From a25fdd53f423ab08660d63d6b4801c028734a59c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 8 Apr 2021 11:31:35 +0000 |
| Subject: RDMA/qedr: Fix error return code in qedr_iw_connect() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Wang Wensheng <wangwensheng4@huawei.com> |
| |
| [ Upstream commit 10dd83dbcd157baf7a78a09ddb2f84c627bc7f1d ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/hw/qedr/qedr_iw_cm.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/infiniband/hw/qedr/qedr_iw_cm.c b/drivers/infiniband/hw/qedr/qedr_iw_cm.c |
| index c4bc58736e48..1715fbe0719d 100644 |
| --- a/drivers/infiniband/hw/qedr/qedr_iw_cm.c |
| +++ b/drivers/infiniband/hw/qedr/qedr_iw_cm.c |
| @@ -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) { |
| -- |
| 2.30.2 |
| |