Blob Blame History Raw
From: Wei Yongjun <weiyongjun1@huawei.com>
Date: Tue, 19 May 2020 09:19:12 +0000
Subject: RDMA/rtrs: server: Fix some error return code
Patch-mainline: v5.8-rc1
Git-commit: 6b31afcef51e578e936e66c347ab333c024963da
References: jsc#SLE-15176

Fix to return negative error code -ENOMEM from the some error handling
cases instead of 0, as done elsewhere in this function.

Fixes: 9cb837480424 ("RDMA/rtrs: server: main functionality")
Fixes: 91b11610af8d ("RDMA/rtrs: server: sysfs interface functions")
Link: https://lore.kernel.org/r/20200519091912.134358-1-weiyongjun1@huawei.com
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Danil Kipnis <danil.kipnis@cloud.ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c |    1 +
 drivers/infiniband/ulp/rtrs/rtrs-srv.c       |    8 +++++---
 2 files changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
@@ -189,6 +189,7 @@ static int rtrs_srv_create_once_sysfs_ro
 	}
 	srv->kobj_paths = kobject_create_and_add("paths", &srv->dev.kobj);
 	if (!srv->kobj_paths) {
+		err = -ENOMEM;
 		pr_err("kobject_create_and_add(): %d\n", err);
 		device_unregister(&srv->dev);
 		goto unlock;
--- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
@@ -660,8 +660,8 @@ static int map_cont_bufs(struct rtrs_srv
 					GFP_KERNEL, sess->s.dev->ib_dev,
 					DMA_TO_DEVICE, rtrs_srv_rdma_done);
 			if (!srv_mr->iu) {
-				rtrs_err(ss, "rtrs_iu_alloc(), err: %d\n",
-					  -ENOMEM);
+				err = -ENOMEM;
+				rtrs_err(ss, "rtrs_iu_alloc(), err: %d\n", err);
 				goto free_iu;
 			}
 		}
@@ -2150,8 +2150,10 @@ static int __init rtrs_server_init(void)
 		goto out_chunk_pool;
 	}
 	rtrs_wq = alloc_workqueue("rtrs_server_wq", WQ_MEM_RECLAIM, 0);
-	if (!rtrs_wq)
+	if (!rtrs_wq) {
+		err = -ENOMEM;
 		goto out_dev_class;
+	}
 
 	return 0;