diff options
author | Dmitry Osipenko <digetx@gmail.com> | 2019-06-23 20:50:53 +0300 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2019-06-24 12:48:29 +0530 |
commit | 560d1bcad715c215e7ffe5d7cffe045974b623d0 (patch) | |
tree | 39b37ff7641b9e322a61817da99df4b9efaf5645 /drivers/opp | |
parent | cd7ea582866f43324f3d60f0d4daac05e08f0f41 (diff) | |
download | linux-riscv-560d1bcad715c215e7ffe5d7cffe045974b623d0.tar.gz linux-riscv-560d1bcad715c215e7ffe5d7cffe045974b623d0.tar.bz2 linux-riscv-560d1bcad715c215e7ffe5d7cffe045974b623d0.zip |
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: 7e535993fa4f ("OPP: Separate out custom OPP handler specific code")
Reported-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
[ Viresh: Massaged changelog ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/opp')
-rw-r--r-- | drivers/opp/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 9fda9a0ec016..89ec6aa220cf 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -685,7 +685,7 @@ static int _set_opp_custom(const struct opp_table *opp_table, data->old_opp.rate = old_freq; size = sizeof(*old_supply) * opp_table->regulator_count; - if (IS_ERR(old_supply)) + if (!old_supply) memset(data->old_opp.supplies, 0, size); else memcpy(data->old_opp.supplies, old_supply, size); |