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
the CONFIG_DEBUG_MUTEXES case:

  #ifdef CONFIG_DEBUG_MUTEXES
  # 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
clarifications.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to