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--;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to