Re: [PATCH V2] PM / OPP: Call notifier without holding opp_table->lock
From: Chanwoo Choi
Date: Wed Sep 20 2017 - 19:58:48 EST
On 2017ë 09ì 21ì 05:25, Viresh Kumar wrote:
> The notifier callbacks may want to call some OPP helper routines which
> may try to take the same opp_table->lock again and cause a deadlock. One
> such usecase was reported by Chanwoo Choi, where calling
> dev_pm_opp_disable() leads us to the devfreq's OPP notifier handler,
> which further calls dev_pm_opp_find_freq_floor() and it deadlocks.
> We don't really need the opp_table->lock to be held across the notifier
> call though, all we want to make sure is that the 'opp' doesn't get
> freed while being used from within the notifier chain. We can do it with
> help of dev_pm_opp_get/put() as well. Let's do it.
> Reported-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> - s/Lets/Let's/ in commit log and added Stephen's tag.
Thanks for your fixup. Looks good to me.
IMHO, this patch should be posted to stable@xxxxxxxxxxxxxxxx
Tested-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Reviewed-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>