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)
committerJakub Kicinski <kuba@kernel.org>
Sat, 29 May 2021 01:12:19 +0000 (18:12 -0700)
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>
drivers/net/ethernet/ibm/ehea/ehea_main.c

index 8fddce7..d5df131 100644 (file)
@@ -2618,10 +2618,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];
@@ -2641,6 +2639,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;
                }
 
@@ -2653,6 +2652,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;
                }
 
@@ -2661,6 +2661,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;
                }