On 15-07-20, 23:54, Walter Lozano wrote: > Currently, when using _of_add_opp_table_v2 parsed_static_opps is > increased and this value is used on _opp_remove_all_static to > check if there are static opps entries that need to be freed. > Unfortunately this does not happens when using _of_add_opp_table_v1, > which leads to warnings. > > This patch increases parsed_static_opps on _of_add_opp_table_v1 in a > similar way as in _of_add_opp_table_v2. > > Signed-off-by: Walter Lozano <walter.loz...@collabora.com> > --- > > drivers/opp/of.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/opp/of.c b/drivers/opp/of.c > index 9a5873591a40..b2bc82bf8b42 100644 > --- a/drivers/opp/of.c > +++ b/drivers/opp/of.c > @@ -917,6 +917,8 @@ static int _of_add_opp_table_v1(struct device *dev, > struct opp_table *opp_table) > nr -= 2; > } > > + opp_table->parsed_static_opps++; > + > return ret; > }
Merged with this and added relevant Fixes and stable tags. diff --git a/drivers/opp/of.c b/drivers/opp/of.c index b2bc82bf8b42..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; @@ -917,8 +921,6 @@ static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table) nr -= 2; } - opp_table->parsed_static_opps++; - return ret; } -- viresh