Commit 7d34d56ef334 ("PM / OPP: Disable OPPs that aren't
supported by the regulator") causes NULL pointer dereference
OOPS when no regulator for OPP is defined.  Fix it by
replacing IS_ERR() check with IS_ERR_OR_NULL() one (since
providing regulator for OPP is optional).

Cc: Viresh Kumar <[email protected]>
Cc: Stephen Boyd <[email protected]>
Cc: Rafael J. Wysocki <[email protected]>
Fixes: 7d34d56ef334 ("PM / OPP: Disable OPPs that aren't supported by the 
regulator")
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
---
This fixes linux-pm/linux-next tree boot hang regression on
Exynos4412 SoC based Odroid-U3 board.

Rafael, please apply.  Thank you!

 drivers/base/power/opp/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c
index ab711c2..d7cd4e2 100644
--- a/drivers/base/power/opp/core.c
+++ b/drivers/base/power/opp/core.c
@@ -975,7 +975,7 @@ static bool _opp_supported_by_regulators(struct dev_pm_opp 
*opp,
 {
        struct regulator *reg = dev_opp->regulator;
 
-       if (!IS_ERR(reg) &&
+       if (!IS_ERR_OR_NULL(reg) &&
            !regulator_is_supported_voltage(reg, opp->u_volt_min,
                                            opp->u_volt_max)) {
                pr_warn("%s: OPP minuV: %lu maxuV: %lu, not supported by 
regulator\n",
-- 
1.9.1


Reply via email to