drm/msm/a3xx: fix error handling in a3xx_gpu_init()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 1 Oct 2021 12:59:04 +0000 (15:59 +0300)
committerRob Clark <robdclark@chromium.org>
Tue, 12 Oct 2021 00:30:53 +0000 (17:30 -0700)
These error paths returned 1 on failure, instead of a negative error
code.  This would lead to an Oops in the caller.  A second problem is
that the check for "if (ret != -ENODATA)" did not work because "ret" was
set to 1.

Fixes: 5785dd7a8ef0 ("drm/msm: Fix duplicate gpu node in icc summary")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20211001125904.GK2283@kili
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a3xx_gpu.c

index 4534633..8fb847c 100644 (file)
@@ -571,13 +571,14 @@ struct msm_gpu *a3xx_gpu_init(struct drm_device *dev)
        }
 
        icc_path = devm_of_icc_get(&pdev->dev, "gfx-mem");
-       ret = IS_ERR(icc_path);
-       if (ret)
+       if (IS_ERR(icc_path)) {
+               ret = PTR_ERR(icc_path);
                goto fail;
+       }
 
        ocmem_icc_path = devm_of_icc_get(&pdev->dev, "ocmem");
-       ret = IS_ERR(ocmem_icc_path);
-       if (ret) {
+       if (IS_ERR(ocmem_icc_path)) {
+               ret = PTR_ERR(ocmem_icc_path);
                /* allow -ENODATA, ocmem icc is optional */
                if (ret != -ENODATA)
                        goto fail;