On Wed, 2011-03-23 at 00:01 +0000, Mark Brown wrote: > On Tue, Mar 22, 2011 at 07:19:58PM -0400, Steven Rostedt wrote: > > > Looks to me that the mutex_lock() in _notifier_call_chain needs to be a > > mutex_lock_nested(). > > > The "_nested()" versions are when you have the same type of mutex taken > > but belonging to two different instances. Like you have here: > > What's a mutex type? I have to say this is the first time I've heard of > mutex types and the documentation in mutex.c and mutex-design.txt isn't > precisely verbose on what mutex_lock_nested() is for or how one would > pick subclass. Sorry, I said "mutex type" as a synonym to "lock class". A lock class is pretty much how a lock is defined. struct foo { struct mutex m; }; struct foo *func(void) { bar = kzalloc(sizeof(*bar)); mutex_init(&bar->m); } bar is an instance of lock class struct foo.m. If you have: a = func(); b = func(); Both a->m and b->m are an instance of struct foo.m lock class. There's better documentation about this in the lockdep-design.txt. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html