svn commit: r276969 - stable/10/sys/kern
Hans Petter Selasky
hselasky at FreeBSD.org
Sun Jan 11 12:17:28 UTC 2015
Author: hselasky
Date: Sun Jan 11 12:17:27 2015
New Revision: 276969
URL: https://svnweb.freebsd.org/changeset/base/276969
Log:
MFC r276532 and r276626:
The "cnputs_mtx" mutex must be allowed to recurse. Debug prints and/or
witness printouts in the console driver clients can cause this mutex
to recurse by calls to "printf()" from witness for example. In
particular this can happen if "debug.witness.skipspin=0" is set in the
boot environment.
Modified:
stable/10/sys/kern/kern_cons.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/kern/kern_cons.c
==============================================================================
--- stable/10/sys/kern/kern_cons.c Sun Jan 11 12:08:17 2015 (r276968)
+++ stable/10/sys/kern/kern_cons.c Sun Jan 11 12:17:27 2015 (r276969)
@@ -505,6 +505,13 @@ cnputs(char *p)
int unlock_reqd = 0;
if (use_cnputs_mtx) {
+ /*
+ * NOTE: Debug prints and/or witness printouts in
+ * console driver clients can cause the "cnputs_mtx"
+ * mutex to recurse. Simply return if that happens.
+ */
+ if (mtx_owned(&cnputs_mtx))
+ return;
mtx_lock_spin(&cnputs_mtx);
unlock_reqd = 1;
}
More information about the svn-src-stable
mailing list