Re: [PATCH V2] PM / OPP: Call notifier without holding opp_table->lock

From: Chanwoo Choi
Date: Wed Sep 20 2017 - 19:58:48 EST


Hi Viresh,

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>
> ---
> V1->V2:
> - 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>

[snip]

--
Best Regards,
Chanwoo Choi
Samsung Electronics