[BACK]Return to kern_mutex.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/kern_mutex.c between version 1.15.6.5 and 1.15.6.6

version 1.15.6.5, 2007/11/21 21:56:00 version 1.15.6.6, 2007/12/03 16:14:51
Line 59  __KERNEL_RCSID(0, "$NetBSD$");
Line 59  __KERNEL_RCSID(0, "$NetBSD$");
 #include <sys/systm.h>  #include <sys/systm.h>
 #include <sys/lockdebug.h>  #include <sys/lockdebug.h>
 #include <sys/kernel.h>  #include <sys/kernel.h>
   #include <sys/atomic.h>
   #include <sys/intr.h>
   
 #include <dev/lockstat.h>  #include <dev/lockstat.h>
   
 #include <sys/intr.h>  
   
 /*  /*
  * When not running a debug kernel, spin mutexes are not much   * When not running a debug kernel, spin mutexes are not much
  * more than an splraiseipl() and splx() pair.   * more than an splraiseipl() and splx() pair.
Line 676  mutex_vector_enter(kmutex_t *mtx)
Line 676  mutex_vector_enter(kmutex_t *mtx)
                  * If the waiters bit is not set it's unsafe to go asleep,                   * If the waiters bit is not set it's unsafe to go asleep,
                  * as we might never be awoken.                   * as we might never be awoken.
                  */                   */
                 if ((mb_read(), mutex_onproc(owner, &ci)) ||                  if ((membar_consumer(), mutex_onproc(owner, &ci)) ||
                     (mb_read(), !MUTEX_HAS_WAITERS(mtx))) {                      (membar_consumer(), !MUTEX_HAS_WAITERS(mtx))) {
                         turnstile_exit(mtx);                          turnstile_exit(mtx);
                         continue;                          continue;
                 }                  }

Legend:
Removed from v.1.15.6.5  
changed lines
  Added in v.1.15.6.6

CVSweb <webmaster@jp.NetBSD.org>