Hey,
Op 05-02-13 21:52, Ben Skeggs schreef:
On Mon, Feb 04, 2013 at 10:59:28PM +0100, Maarten Lankhorst wrote:
Op 04-02-13 22:30, Marcin Slusarz schreef:
- Lockdep thinks all nouveau subdevs belong to the same class and can be
locked in arbitrary order, which is not true (at least in general case). Tell it to distinguish subdevs by (o)class type.
Apart from this specific case, is there any other reason why we require being able to nest 2 subdev locks?
I think I tend to prefer Marcin's fix for this actually. The subdev's are completely separate classes of objects and as interaction between them increases (PM will be very much like this), we may very well require holding multiple subdev mutexes at once.
Ben.
Depends, I think for this specific example I think my cleanup is better.
For the generic case you could use nested mutexes, which will give you a different lockdep class when you need it. It's probably better to have those cases where you do need to nest locking annotated:
mutex_lock_nested(&mutex, SINGLE_DEPTH_NESTING);
See also Documentation/lockdep-design.txt
~Maarten