diff options
author | Walter Lozano <walter.lozano@collabora.com> | 2020-07-15 23:54:52 -0300 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2020-07-16 08:50:54 +0530 |
commit | 6544abc520f0fff701e9da382110dc29676c683a (patch) | |
tree | 42b31c7dde572112356b535570e8e70b8f095a92 | |
parent | b3a9e3b9622ae10064826dccb4f7a52bd88c7407 (diff) |
opp: Increase parsed_static_opps in _of_add_opp_table_v1()
Currently, when using _of_add_opp_table_v2 parsed_static_opps is
increased and this value is used in _opp_remove_all_static() to
check if there are static opp entries that need to be freed.
Unfortunately this does not happen when using _of_add_opp_table_v1(),
which leads to warnings.
This patch increases parsed_static_opps in _of_add_opp_table_v1() in a
similar way as in _of_add_opp_table_v2().
Fixes: 03758d60265c ("opp: Replace list_kref with a local counter")
Cc: v5.6+ <stable@vger.kernel.org> # v5.6+
Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
[ Viresh: Do the operation with lock held and set the value to 1 instead
of incrementing it ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-rw-r--r-- | drivers/opp/of.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/opp/of.c b/drivers/opp/of.c index 9a5873591a40..314f306140a1 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -902,6 +902,10 @@ static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table) return -EINVAL; } + mutex_lock(&opp_table->lock); + opp_table->parsed_static_opps = 1; + mutex_unlock(&opp_table->lock); + val = prop->value; while (nr) { unsigned long freq = be32_to_cpup(val++) * 1000; |