Module Name:    src
Committed By:   ad
Date:           Tue Dec 10 11:12:02 UTC 2019

Modified Files:
        src/sys/kern: kern_mutex.c

Log Message:
Fix build break.


To generate a diff of this commit:
cvs rdiff -u -r1.81 -r1.82 src/sys/kern/kern_mutex.c

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

Modified files:

Index: src/sys/kern/kern_mutex.c
diff -u src/sys/kern/kern_mutex.c:1.81 src/sys/kern/kern_mutex.c:1.82
--- src/sys/kern/kern_mutex.c:1.81	Mon Dec  9 21:05:23 2019
+++ src/sys/kern/kern_mutex.c	Tue Dec 10 11:12:02 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_mutex.c,v 1.81 2019/12/09 21:05:23 ad Exp $	*/
+/*	$NetBSD: kern_mutex.c,v 1.82 2019/12/10 11:12:02 ad Exp $	*/
 
 /*-
  * Copyright (c) 2002, 2006, 2007, 2008, 2019 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
 #define	__MUTEX_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_mutex.c,v 1.81 2019/12/09 21:05:23 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_mutex.c,v 1.82 2019/12/10 11:12:02 ad Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -823,19 +823,25 @@ mutex_owner(const kmutex_t *mtx)
 /*
  * mutex_owner_running:
  *
- *	Return true if an adaptive mutex is held and the owner is running
- *	on a CPU.  For the pagedaemon.
+ *	Return true if an adaptive mutex is unheld, or held and the owner is
+ *	running on a CPU.  For the pagedaemon.
  */
 bool
 mutex_owner_running(const kmutex_t *mtx)
 {
+#ifdef MULTIPROCESSOR
+	uintptr_t owner;
 	bool rv;
 
 	MUTEX_ASSERT(mtx, MUTEX_ADAPTIVE_P(mtx));
 	kpreempt_disable();
-	rv = mutex_oncpu(MUTEX_OWNER(mtx->mtx_owner));
+	owner = mtx->mtx_owner;
+	rv = (MUTEX_OWNED(owner) && mutex_oncpu(MUTEX_OWNER(owner));
 	kpreempt_enable();
 	return rv;
+#else
+	return mutex_owner(mtx) == curlwp;
+#endif
 }
 
 /*

Reply via email to