Commit 560d1bca authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Viresh Kumar

opp: Don't use IS_ERR on invalid supplies

_set_opp_custom() receives a set of OPP supplies as its arguments and
the caller of it passes NULL when the supplies are not valid. But
_set_opp_custom(), by mistake, checks for error by performing
IS_ERR(old_supply) on it which will always evaluate to false.

The problem was spotted during of testing of upcoming update for the
NVIDIA Tegra CPUFreq driver.

Cc: stable <stable@vger.kernel.org>
Fixes: 7e535993 ("OPP: Separate out custom OPP handler specific code")
Reported-by: default avatarMarc Dietrich <marvin24@gmx.de>
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
[ Viresh: Massaged changelog ]
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent cd7ea582
...@@ -685,7 +685,7 @@ static int _set_opp_custom(const struct opp_table *opp_table, ...@@ -685,7 +685,7 @@ static int _set_opp_custom(const struct opp_table *opp_table,
data->old_opp.rate = old_freq; data->old_opp.rate = old_freq;
size = sizeof(*old_supply) * opp_table->regulator_count; size = sizeof(*old_supply) * opp_table->regulator_count;
if (IS_ERR(old_supply)) if (!old_supply)
memset(data->old_opp.supplies, 0, size); memset(data->old_opp.supplies, 0, size);
else else
memcpy(data->old_opp.supplies, old_supply, size); memcpy(data->old_opp.supplies, old_supply, size);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment