Module Name:    src
Committed By:   kiyohara
Date:           Sat Feb  9 11:22:51 UTC 2013

Modified Files:
        src/sys/arch/powerpc/ibm4xx: trap_subr.S

Log Message:
Fix KASSERT(l == curlwp)ed in mi_switch().  Don't use INTSTK of cpu_info in
INTR_PROLOG when user-mode.  Interrupted user context switches to newlwp, if
sched tick.  This context must save to USPACE.
When use our INTSTK?


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/powerpc/ibm4xx/trap_subr.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/powerpc/ibm4xx/trap_subr.S
diff -u src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.23 src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.24
--- src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.23	Tue Jan 29 15:33:44 2013
+++ src/sys/arch/powerpc/ibm4xx/trap_subr.S	Sat Feb  9 11:22:51 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap_subr.S,v 1.23 2013/01/29 15:33:44 kiyohara Exp $	*/
+/*	$NetBSD: trap_subr.S,v 1.24 2013/02/09 11:22:51 kiyohara Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -166,9 +166,10 @@ _C_LABEL(name ## size) = .-_C_LABEL(name
 	mfxer	%r30;			/* save XER */		\
 	mfsrr1	%r31;						\
 	mtcr	%r31;						\
-	lwz	%r1,CI_INTSTK(%r1);	/* get intstk */	\
-	bt	MSR_PR,1f;		/* branch if PSL_PR is true */ \
-	mfsprg1	%r1;			/* yes, get old SP */	\
+	mfsprg1	%r1;			/* restore SP */ 	\
+	bf	MSR_PR,1f;		/* branch if PSL_PR is false */ \
+	GET_PCB(%r1);						\
+	addi	%r1,%r1,USPACE-CALLFRAMELEN; /* stack is top of user struct */ \
 1:
 
 /*

Reply via email to