On Thu, Mar 10, 2016 at 02:59:31PM +0530, Chetan Nanda wrote: > Hi, > > As per book (Linux kernel development) > > "Whoever locked a mutex must unlock it.That is, you cannot lock a mutex in one > context and then unlock it in another > " > but 'mutex_unlock' code is not checking the owner field at all. If you look at the definition of mutex structure in mutex.h:50, you'll see that the owner field will be compiled in if one of CONFIG_DEBUG_MUTEXES or CONFIG_MUTEX_SPIN_ON_OWNER is defined. And debug_mutex_unlock function in mutex-debug.c:72 will check the owner and emits warning if it finds out that the mutex isn't unlocked by its owner. http://lxr.free-electrons.com/source/include/linux/mutex.h#L50 http://lxr.free-electrons.com/source/kernel/locking/mutex-debug.c#L72 > > Also, I tried with locking the mutex from normal process context and > unlocking from separate context (work context) and it is allowed > without any error from kernel. > > Is it the mutex user responsibility to keep track of it? Ideally > mutex_unlock should check if owner is same as current? _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies