]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regulator: Return actual error in of_regulator_bulk_get_all()
authorChen-Yu Tsai <wenst@chromium.org>
Thu, 22 Aug 2024 07:20:45 +0000 (15:20 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 22 Aug 2024 12:34:29 +0000 (13:34 +0100)
If regulator_get() in of_regulator_bulk_get_all() returns an error, that
error gets overridden and -EINVAL is always passed out. This masks probe
deferral requests and likely won't work properly in all cases.

Fix this by letting of_regulator_bulk_get_all() return the original
error code.

Fixes: 27b9ecc7a9ba ("regulator: Add of_regulator_bulk_get_all")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240822072047.3097740-3-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/of_regulator.c

index 03afc160fc72ce8728f8314a5b7f9e2c38c5c808..86b680adbf01c780cd1bfd26b6ca44805db42f30 100644 (file)
@@ -777,7 +777,7 @@ restart:
                        name[i] = '\0';
                        tmp = regulator_get(dev, name);
                        if (IS_ERR(tmp)) {
-                               ret = -EINVAL;
+                               ret = PTR_ERR(tmp);
                                goto error;
                        }
                        (*consumers)[n].consumer = tmp;