| From 287a5ffb949f32c4e0d279bc7a9a89392efba526 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 28 May 2021 16:55:55 +0800 |
| Subject: ehea: fix error return code in ehea_restart_qps() |
| |
| From: Zhen Lei <thunder.leizhen@huawei.com> |
| |
| [ Upstream commit 015dbf5662fd689d581c0bc980711b073ca09a1a ] |
| |
| Fix to return -EFAULT from the error handling case instead of 0, as done |
| elsewhere in this function. |
| |
| By the way, when get_zeroed_page() fails, directly return -ENOMEM to |
| simplify code. |
| |
| Fixes: 2c69448bbced ("ehea: DLPAR memory add fix") |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> |
| Link: https://lore.kernel.org/r/20210528085555.9390-1-thunder.leizhen@huawei.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/ibm/ehea/ehea_main.c | 9 +++++---- |
| 1 file changed, 5 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c |
| index c2e740475786..f63066736425 100644 |
| --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c |
| +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c |
| @@ -2617,10 +2617,8 @@ static int ehea_restart_qps(struct net_device *dev) |
| u16 dummy16 = 0; |
| |
| cb0 = (void *)get_zeroed_page(GFP_KERNEL); |
| - if (!cb0) { |
| - ret = -ENOMEM; |
| - goto out; |
| - } |
| + if (!cb0) |
| + return -ENOMEM; |
| |
| for (i = 0; i < (port->num_def_qps); i++) { |
| struct ehea_port_res *pr = &port->port_res[i]; |
| @@ -2640,6 +2638,7 @@ static int ehea_restart_qps(struct net_device *dev) |
| cb0); |
| if (hret != H_SUCCESS) { |
| netdev_err(dev, "query_ehea_qp failed (1)\n"); |
| + ret = -EFAULT; |
| goto out; |
| } |
| |
| @@ -2652,6 +2651,7 @@ static int ehea_restart_qps(struct net_device *dev) |
| &dummy64, &dummy16, &dummy16); |
| if (hret != H_SUCCESS) { |
| netdev_err(dev, "modify_ehea_qp failed (1)\n"); |
| + ret = -EFAULT; |
| goto out; |
| } |
| |
| @@ -2660,6 +2660,7 @@ static int ehea_restart_qps(struct net_device *dev) |
| cb0); |
| if (hret != H_SUCCESS) { |
| netdev_err(dev, "query_ehea_qp failed (2)\n"); |
| + ret = -EFAULT; |
| goto out; |
| } |
| |
| -- |
| 2.30.2 |
| |