[PATCH] OPP: Check for invalid OPP in dev_pm_opp_find_level_ceil()

Viresh Kumar posted 1 patch 2 years ago
drivers/opp/core.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] OPP: Check for invalid OPP in dev_pm_opp_find_level_ceil()
Posted by Viresh Kumar 2 years ago
_find_key_ceil() may return an error and that must be checked before
passing the same to dev_pm_opp_put().

Fixes: 41907aa4ae37 ("OPP: Level zero is valid")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/opp/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index 4f1ca84d9ed0..c022d548067d 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -808,6 +808,8 @@ struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev,
 	struct dev_pm_opp *opp;
 
 	opp = _find_key_ceil(dev, &temp, 0, true, _read_level, NULL);
+	if (IS_ERR(opp))
+		return opp;
 
 	/* False match */
 	if (temp == OPP_LEVEL_UNSET) {
-- 
2.31.1.272.g89b43f80a514