Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Sep 2010 15:36:42 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r212559 - head/sys/powerpc/powerpc
Message-ID:  <201009131536.o8DFagHW011227@svn.freebsd.org>

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



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