Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Walter Lozano and committed by
Viresh Kumar
6544abc5 b3a9e3b9

+4
+4
drivers/opp/of.c
··· 902 902 return -EINVAL; 903 903 } 904 904 905 + mutex_lock(&opp_table->lock); 906 + opp_table->parsed_static_opps = 1; 907 + mutex_unlock(&opp_table->lock); 908 + 905 909 val = prop->value; 906 910 while (nr) { 907 911 unsigned long freq = be32_to_cpup(val++) * 1000;