Denis Kirjanov 8656e8
From babe58e001576c73bba73101dfa8bd2ca7262094 Mon Sep 17 00:00:00 2001
Denis Kirjanov 8656e8
From: Zhen Lei <thunder.leizhen@huawei.com>
Denis Kirjanov 8656e8
Date: Fri, 28 May 2021 16:55:55 +0800
Denis Kirjanov 8656e8
Subject: [PATCH 15/16] ehea: fix error return code in ehea_restart_qps()
Denis Kirjanov 8656e8
Git-commit: 015dbf5662fd689d581c0bc980711b073ca09a1a
Denis Kirjanov 8656e8
Patch-mainline: v5.14-rc1
Denis Kirjanov 8656e8
References: git-fixes
Denis Kirjanov 8656e8
Denis Kirjanov 8656e8
Fix to return -EFAULT from the error handling case instead of 0, as done
Denis Kirjanov 8656e8
elsewhere in this function.
Denis Kirjanov 8656e8
Denis Kirjanov 8656e8
By the way, when get_zeroed_page() fails, directly return -ENOMEM to
Denis Kirjanov 8656e8
simplify code.
Denis Kirjanov 8656e8
Denis Kirjanov 8656e8
Fixes: 2c69448bbced ("ehea: DLPAR memory add fix")
Denis Kirjanov 8656e8
Reported-by: Hulk Robot <hulkci@huawei.com>
Denis Kirjanov 8656e8
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Denis Kirjanov 8656e8
Link: https://lore.kernel.org/r/20210528085555.9390-1-thunder.leizhen@huawei.com
Denis Kirjanov 8656e8
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Denis Kirjanov 8656e8
Signed-off-by: Denis Kirjanov <denis.kirjanov@suse.com>
Denis Kirjanov 8656e8
---
Denis Kirjanov 8656e8
 drivers/net/ethernet/ibm/ehea/ehea_main.c | 9 +++++----
Denis Kirjanov 8656e8
 1 file changed, 5 insertions(+), 4 deletions(-)
Denis Kirjanov 8656e8
Denis Kirjanov 8656e8
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
Denis Kirjanov 8656e8
index 975a7b9867a0..1e5874f2f3cf 100644
Denis Kirjanov 8656e8
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
Denis Kirjanov 8656e8
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
Denis Kirjanov 8656e8
@@ -2647,10 +2647,8 @@ static int ehea_restart_qps(struct net_device *dev)
Denis Kirjanov 8656e8
 	u16 dummy16 = 0;
Denis Kirjanov 8656e8
 
Denis Kirjanov 8656e8
 	cb0 = (void *)get_zeroed_page(GFP_KERNEL);
Denis Kirjanov 8656e8
-	if (!cb0) {
Denis Kirjanov 8656e8
-		ret = -ENOMEM;
Denis Kirjanov 8656e8
-		goto out;
Denis Kirjanov 8656e8
-	}
Denis Kirjanov 8656e8
+	if (!cb0)
Denis Kirjanov 8656e8
+		return -ENOMEM;
Denis Kirjanov 8656e8
 
Denis Kirjanov 8656e8
 	for (i = 0; i < (port->num_def_qps); i++) {
Denis Kirjanov 8656e8
 		struct ehea_port_res *pr =  &port->port_res[i];
Denis Kirjanov 8656e8
@@ -2670,6 +2668,7 @@ static int ehea_restart_qps(struct net_device *dev)
Denis Kirjanov 8656e8
 					    cb0);
Denis Kirjanov 8656e8
 		if (hret != H_SUCCESS) {
Denis Kirjanov 8656e8
 			netdev_err(dev, "query_ehea_qp failed (1)\n");
Denis Kirjanov 8656e8
+			ret = -EFAULT;
Denis Kirjanov 8656e8
 			goto out;
Denis Kirjanov 8656e8
 		}
Denis Kirjanov 8656e8
 
Denis Kirjanov 8656e8
@@ -2682,6 +2681,7 @@ static int ehea_restart_qps(struct net_device *dev)
Denis Kirjanov 8656e8
 					     &dummy64, &dummy16, &dummy16);
Denis Kirjanov 8656e8
 		if (hret != H_SUCCESS) {
Denis Kirjanov 8656e8
 			netdev_err(dev, "modify_ehea_qp failed (1)\n");
Denis Kirjanov 8656e8
+			ret = -EFAULT;
Denis Kirjanov 8656e8
 			goto out;
Denis Kirjanov 8656e8
 		}
Denis Kirjanov 8656e8
 
Denis Kirjanov 8656e8
@@ -2690,6 +2690,7 @@ static int ehea_restart_qps(struct net_device *dev)
Denis Kirjanov 8656e8
 					    cb0);
Denis Kirjanov 8656e8
 		if (hret != H_SUCCESS) {
Denis Kirjanov 8656e8
 			netdev_err(dev, "query_ehea_qp failed (2)\n");
Denis Kirjanov 8656e8
+			ret = -EFAULT;
Denis Kirjanov 8656e8
 			goto out;
Denis Kirjanov 8656e8
 		}
Denis Kirjanov 8656e8
 
Denis Kirjanov 8656e8
-- 
Denis Kirjanov 8656e8
2.16.4
Denis Kirjanov 8656e8