Author: mav
Date: Tue Oct  4 10:02:14 2011
New Revision: 225963
URL: http://svn.freebsd.org/changeset/base/225963

Log:
  MFC 225953:
  Revert r225875, r225877:
  It is reported that on some chips (e.g. the 970MP) behavior of POW bit set
  simultaneously with modifying other bits is undefined and may cause hangs.
  The race should be handled in some other way, but for now just get back.
  
  Reported by:    nwitehorn
  Approved by:  re (kib)

Modified:
  stable/9/sys/powerpc/powerpc/cpu.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/powerpc/powerpc/cpu.c
==============================================================================
--- stable/9/sys/powerpc/powerpc/cpu.c  Tue Oct  4 10:00:28 2011        
(r225962)
+++ stable/9/sys/powerpc/powerpc/cpu.c  Tue Oct  4 10:02:14 2011        
(r225963)
@@ -65,7 +65,6 @@
 #include <sys/cpu.h>
 #include <sys/kernel.h>
 #include <sys/proc.h>
-#include <sys/sched.h>
 #include <sys/sysctl.h>
 
 #include <machine/bus.h>
@@ -554,11 +553,6 @@ cpu_idle_60x(void)
        vers = mfpvr() >> 16;
 
 #ifdef AIM
-       mtmsr(msr & ~PSL_EE);
-       if (sched_runnable()) {
-               mtmsr(msr);
-               return;
-       }
        switch (vers) {
        case IBM970:
        case IBM970FX:
@@ -589,11 +583,6 @@ cpu_idle_e500(void)
        msr = mfmsr();
 
 #ifdef E500
-       mtmsr(msr & ~PSL_EE);
-       if (sched_runnable()) {
-               mtmsr(msr);
-               return;
-       }
        /* Freescale E500 core RM section 6.4.1. */
        __asm __volatile("msync; mtmsr %0; isync" ::
            "r" (msr | PSL_WE));
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to