From mboxrd@z Thu Jan 1 00:00:00 1970 From: chetannanda@gmail.com (Chetan Nanda) Date: Tue, 15 Mar 2016 19:29:59 +0530 Subject: owner not checked in mutex_unlock In-Reply-To: <20160315134857.GA12831@portege.ulakbim.gov.tr> References: <20160315134857.GA12831@portege.ulakbim.gov.tr> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On 15-Mar-2016 7:19 pm, "Cihangir Akturk" wrote: > > 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 > Thanks for your mail, in my kernel CONFIG_MUTEX_SPIN_ON_OWNER is enabled but CONFIG_DEBUG_MUTEX is not enabled. So there are no warning messages in logs. Also, it don't seems to be a real performance hit by adding a single check of owner with current in unlock code. > > > > 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? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160315/d4f447f7/attachment.html