svn commit: r228265 - head/sys/kern

Andriy Gapon avg at FreeBSD.org
Sun Dec 4 21:27:41 UTC 2011


Author: avg
Date: Sun Dec  4 21:27:41 2011
New Revision: 228265
URL: http://svn.freebsd.org/changeset/base/228265

Log:
  critical_exit: ignore td_owepreempt if kdb_active is set
  
  calling mi_switch in such a context results in a recursion via
  kdb_switch
  
  Suggested by:	jhb
  Reviewed by:	jhb
  MFC after:	5 weeks

Modified:
  head/sys/kern/kern_switch.c

Modified: head/sys/kern/kern_switch.c
==============================================================================
--- head/sys/kern/kern_switch.c	Sun Dec  4 21:24:01 2011	(r228264)
+++ head/sys/kern/kern_switch.c	Sun Dec  4 21:27:41 2011	(r228265)
@@ -200,7 +200,7 @@ critical_exit(void)
 
 	if (td->td_critnest == 1) {
 		td->td_critnest = 0;
-		if (td->td_owepreempt) {
+		if (td->td_owepreempt && !kdb_active) {
 			td->td_critnest = 1;
 			thread_lock(td);
 			td->td_critnest--;


More information about the svn-src-head mailing list