Re: Question on mutex code

From: Matthias Bonne
Date: Sun Mar 15 2015 - 23:40:37 EST

On 03/16/15 00:10, Rabin Vincent wrote:
On Sun, Mar 15, 2015 at 11:49:07PM +0200, Matthias Bonne wrote:
So the counter is set to 1 before taking the spinlock, which I think
might cause the race. Did I miss something?

Yes, you miss the fact that __mutex_slowpath_needs_to_unlock() is 0 for

# include "mutex-debug.h"
# include <asm-generic/mutex-null.h>
* Must be 0 for the debug case so we do not do the unlock outside of the
* wait_lock region. debug_mutex_unlock() will do the actual unlock in this
* case.
# undef __mutex_slowpath_needs_to_unlock
# define __mutex_slowpath_needs_to_unlock() 0

Right, I overlooked this part. Thanks to both of you for the
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at