svn commit: r205215 - in projects/ppc64/sys/powerpc: aim powerpc
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Tue Mar 16 16:11:17 UTC 2010
Author: nwhitehorn
Date: Tue Mar 16 16:11:16 2010
New Revision: 205215
URL: http://svn.freebsd.org/changeset/base/205215
Log:
Correct a final nit with USER_SR handling: USER_ADDR is no longer at
USER_SR << 28 on powerpc64, so make sure to invalidate the correct
SLB entry when switching threads.
Modified:
projects/ppc64/sys/powerpc/aim/locore32.S
projects/ppc64/sys/powerpc/aim/locore64.S
projects/ppc64/sys/powerpc/aim/swtch32.S
projects/ppc64/sys/powerpc/aim/swtch64.S
projects/ppc64/sys/powerpc/powerpc/genassym.c
Modified: projects/ppc64/sys/powerpc/aim/locore32.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/locore32.S Tue Mar 16 16:01:19 2010 (r205214)
+++ projects/ppc64/sys/powerpc/aim/locore32.S Tue Mar 16 16:11:16 2010 (r205215)
@@ -62,7 +62,6 @@
#include <machine/trap.h>
#include <machine/param.h>
-#include <machine/sr.h>
#include <machine/spr.h>
#include <machine/psl.h>
#include <machine/asm.h>
Modified: projects/ppc64/sys/powerpc/aim/locore64.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/locore64.S Tue Mar 16 16:01:19 2010 (r205214)
+++ projects/ppc64/sys/powerpc/aim/locore64.S Tue Mar 16 16:11:16 2010 (r205215)
@@ -62,7 +62,6 @@
#include <machine/trap.h>
#include <machine/param.h>
-#include <machine/sr.h>
#include <machine/spr.h>
#include <machine/psl.h>
#include <machine/asm.h>
Modified: projects/ppc64/sys/powerpc/aim/swtch32.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/swtch32.S Tue Mar 16 16:01:19 2010 (r205214)
+++ projects/ppc64/sys/powerpc/aim/swtch32.S Tue Mar 16 16:11:16 2010 (r205215)
@@ -63,7 +63,6 @@
#include <machine/trap.h>
#include <machine/param.h>
-#include <machine/sr.h>
#include <machine/psl.h>
#include <machine/asm.h>
Modified: projects/ppc64/sys/powerpc/aim/swtch64.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/swtch64.S Tue Mar 16 16:01:19 2010 (r205214)
+++ projects/ppc64/sys/powerpc/aim/swtch64.S Tue Mar 16 16:11:16 2010 (r205215)
@@ -63,7 +63,6 @@
#include <machine/trap.h>
#include <machine/param.h>
-#include <machine/sr.h>
#include <machine/psl.h>
#include <machine/asm.h>
@@ -223,8 +222,10 @@ blocked_loop:
ld %r1,PCB_SP(%r3) /* Load the stack pointer */
ld %r2,PCB_TOC(%r3) /* Load the TOC pointer */
- li %r5,USER_SR /* Load the USER_SR segment reg */
- sldi %r5,%r5,28
+ lis %r5,USER_ADDR at highesta /* Load the USER_SR segment reg */
+ ori %r5,%r5,USER_ADDR at highera
+ sldi %r5,%r5,32
+ oris %r5,%r5,USER_ADDR at ha
slbie %r5
ld %r5,PCB_AIM_USR_VSID(%r3)
ld %r6,PCB_AIM_USR_ESID(%r3)
Modified: projects/ppc64/sys/powerpc/powerpc/genassym.c
==============================================================================
--- projects/ppc64/sys/powerpc/powerpc/genassym.c Tue Mar 16 16:01:19 2010 (r205214)
+++ projects/ppc64/sys/powerpc/powerpc/genassym.c Tue Mar 16 16:11:16 2010 (r205215)
@@ -102,6 +102,8 @@ ASSYM(TLBSAVE_BOOKE_R31, TLBSAVE_BOOKE_R
ASSYM(MTX_LOCK, offsetof(struct mtx, mtx_lock));
#if defined(AIM)
+ASSYM(USER_SR, USER_SR);
+ASSYM(USER_ADDR, USER_ADDR);
#ifdef __powerpc64__
ASSYM(PM_SLB, offsetof(struct pmap, pm_slb));
#else
More information about the svn-src-projects
mailing list