Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/powerpc/ibm4xx Fix KASSERT(l == curlwp)ed in mi_swi...
details: https://anonhg.NetBSD.org/src/rev/06273ecf8c0c
branches: trunk
changeset: 784776:06273ecf8c0c
user: kiyohara <kiyohara%NetBSD.org@localhost>
date: Sat Feb 09 11:22:51 2013 +0000
description:
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?
diffstat:
sys/arch/powerpc/ibm4xx/trap_subr.S | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diffs (23 lines):
diff -r 5f7c1170d1eb -r 06273ecf8c0c sys/arch/powerpc/ibm4xx/trap_subr.S
--- a/sys/arch/powerpc/ibm4xx/trap_subr.S Sat Feb 09 11:20:56 2013 +0000
+++ b/sys/arch/powerpc/ibm4xx/trap_subr.S Sat Feb 09 11:22:51 2013 +0000
@@ -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 @@
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:
/*
Home |
Main Index |
Thread Index |
Old Index