On Thu, Jun 25, 2015 at 05:03:00PM +0200, Lars-Peter Clausen wrote:
On 06/25/2015 03:21 PM, Arjan van de Ven wrote:
wouldn't it be better to use the mutex_lock_nested() and co to explicitly express your hierarchy?
That would require that the hierarchy is known in advance. The hierarchy depends on the hardware topology. Different systems will have different hierarchies where the relationship between locks can change and it will be hard to find a hierarchy that works across all topologies.
It depends on what you use as the key for the nested locking stuff. If you assign a key per regmap (casting the pointer to an integer, using an IDR or something). I don't know if that creates problems for the locking code, I'd not expect so but then I'd not have expected the problem in the first place.
As far as I can tell we're likely to end up needing a key per regmap or something similar.