On 13-01-17, 00:52, Stephen Boyd wrote:
What still doesn't make sense is how an individual OPP could go away without the table that the OPP lives in also going away.
dev_pm_opp_remove() is one such option, which can remove OPPs individually. Over that, while remove tables we remove all the OPPs one by one. So that really does happen.
If an OPP is going away while a driver has a reference to it, then the driver using that OPP should probably not be using it.
That is being protected with this patch now and the drivers can use them freely.
TL;DR letting drivers use OPP pointers outside of the OPP core feels racy.
Hmm, we don't update the OPP a lot after creating it today. But that's a different problem to solve, if we really see a race there.