Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Dec 2011 21:27:41 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r228265 - head/sys/kern
Message-ID:  <201112042127.pB4LRfN5003715@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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--;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112042127.pB4LRfN5003715>