PERFORCE change 98428 for review

John Baldwin jhb at FreeBSD.org
Sat Jun 3 21:21:30 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=98428

Change 98428 by jhb at jhb_mutex on 2006/06/03 21:19:49

	Duplicate last fix to CVS.

Affected files ...

.. //depot/projects/smpng/sys/kern/kern_mutex.c#127 edit
.. //depot/projects/smpng/sys/sys/mutex.h#62 edit

Differences ...

==== //depot/projects/smpng/sys/kern/kern_mutex.c#127 (text+ko) ====

@@ -91,7 +91,7 @@
  */
 #define mtx_unowned(m)	((m)->mtx_lock == MTX_UNOWNED)
 
-#define	mtx_owner(m)	((struct thread *)((m)->mtx_lock & (MTX_FLAGMASK|MTX_UNOWNED)))
+#define	mtx_owner(m)	((struct thread *)((m)->mtx_lock & ~MTX_FLAGMASK))
 
 #ifdef DDB
 static void	db_show_mtx(struct lock_object *lock);
@@ -542,7 +542,7 @@
 		 * If the current owner of the lock is executing on another
 		 * CPU, spin instead of blocking.
 		 */
-		owner = (struct thread *)(v & MTX_FLAGMASK);
+		owner = (struct thread *)(v & ~MTX_FLAGMASK);
 #ifdef ADAPTIVE_GIANT
 		if (TD_IS_RUNNING(owner)) {
 #else

==== //depot/projects/smpng/sys/sys/mutex.h#62 (text+ko) ====

@@ -71,7 +71,7 @@
 #define	MTX_RECURSED	0x00000001	/* lock recursed (for MTX_DEF only) */
 #define	MTX_CONTESTED	0x00000002	/* lock contested (for MTX_DEF only) */
 #define MTX_UNOWNED	0x00000004	/* Cookie for free mutex */
-#define	MTX_FLAGMASK	~(MTX_RECURSED | MTX_CONTESTED)
+#define	MTX_FLAGMASK	(MTX_RECURSED | MTX_CONTESTED | MTX_UNOWNED)
 
 #endif	/* _KERNEL */
 
@@ -322,7 +322,7 @@
 
 #define	mtx_initialized(m)	lock_initalized(&(m)->mtx_object)
 
-#define mtx_owned(m)	(((m)->mtx_lock & MTX_FLAGMASK) == (uintptr_t)curthread)
+#define mtx_owned(m)	(((m)->mtx_lock & ~MTX_FLAGMASK) == (uintptr_t)curthread)
 
 #define mtx_recursed(m)	((m)->mtx_recurse != 0)
 


More information about the p4-projects mailing list