]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ehea: fix error return code in ehea_restart_qps()
authorZhen Lei <thunder.leizhen@huawei.com>
Fri, 28 May 2021 08:55:55 +0000 (16:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:22:34 +0000 (16:22 +0200)
[ 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

index efe84ca20da7a3915c8edbf248c7eda1e8e953e1..43fc6d3704579c32486999387ebfc45181eab7b1 100644 (file)
@@ -2654,10 +2654,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];
@@ -2677,6 +2675,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;
                }
 
@@ -2689,6 +2688,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;
                }
 
@@ -2697,6 +2697,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;
                }