Author: nwhitehorn
Date: Mon Sep 13 15:36:42 2010
New Revision: 212559
URL: http://svn.freebsd.org/changeset/base/212559

Log:
  Fix a subtle bug uncovered by the recent one-shot timer import in which
  any spin locks acquired between the enabling of interrupts in
  machdep_ap_bootstrap() and the invocation of the scheduler would fail to
  have interrupts disabled due to the fake spinlock already held by the
  idle thread. sched_throw(NULL) will enable interrupts by itself when
  exiting this spinlock, so just let it do that and don't enable interrupts
  here.

Modified:
  head/sys/powerpc/powerpc/mp_machdep.c

Modified: head/sys/powerpc/powerpc/mp_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/mp_machdep.c       Mon Sep 13 15:30:09 2010        
(r212558)
+++ head/sys/powerpc/powerpc/mp_machdep.c       Mon Sep 13 15:36:42 2010        
(r212559)
@@ -94,9 +94,6 @@ machdep_ap_bootstrap(void)
        /* Start per-CPU event timers. */
        cpu_initclocks_ap();
 
-       /* Let the DEC and external interrupts go */
-       mtmsr(mfmsr() | PSL_EE);
-
        /* Announce ourselves awake, and enter the scheduler */
        sched_throw(NULL);
 }
_______________________________________________
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