]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.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)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 13 Aug 2021 07:30:44 +0000 (09:30 +0200)
BugLink: https://bugs.launchpad.net/bugs/1938340
[ 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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/ethernet/ibm/ehea/ehea_main.c

index c2e7404757869ca227f49df08b1890552d28f44c..f6306673642531625c0da663d9976312e1b29627 100644 (file)
@@ -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;
                }