Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/arm32 Ensure that r5 contains curlwp before DO_...



details:   https://anonhg.NetBSD.org/src/rev/ab67dcb1cb7f
branches:  trunk
changeset: 957216:ab67dcb1cb7f
user:      skrll <skrll%NetBSD.org@localhost>
date:      Sat Nov 21 19:44:52 2020 +0000

description:
Ensure that r5 contains curlwp before DO_AST_AND_RESTORE_ALIGNMENT_FAULTS
in lwp_trampoline as required by the move to make ASTs operate per-LWP
rather than per-CPU.

Thanks to martin@ for bisecting the amap corruption he was seeing and
testing this fix.

diffstat:

 sys/arch/arm/arm32/cpuswitch.S |  7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diffs (28 lines):

diff -r c77b82dcfb82 -r ab67dcb1cb7f sys/arch/arm/arm32/cpuswitch.S
--- a/sys/arch/arm/arm32/cpuswitch.S    Sat Nov 21 19:40:19 2020 +0000
+++ b/sys/arch/arm/arm32/cpuswitch.S    Sat Nov 21 19:44:52 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpuswitch.S,v 1.103 2020/08/15 13:33:54 skrll Exp $    */
+/*     $NetBSD: cpuswitch.S,v 1.104 2020/11/21 19:44:52 skrll Exp $    */
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -87,7 +87,7 @@
 #include <arm/asm.h>
 #include <arm/locore.h>
 
-       RCSID("$NetBSD: cpuswitch.S,v 1.103 2020/08/15 13:33:54 skrll Exp $")
+       RCSID("$NetBSD: cpuswitch.S,v 1.104 2020/11/21 19:44:52 skrll Exp $")
 
 /* LINTSTUB: include <sys/param.h> */
 
@@ -324,7 +324,8 @@
        GET_CPSR(r0)
        CPSID_I(r0, r0)                 /* Kill irq's */
 
-       GET_CURCPU(r4)                  /* for DO_AST */
+       /* for DO_AST */
+       GET_CURX(r4, r5)                /* r4 = curcpu, r5 = curlwp */
        DO_AST_AND_RESTORE_ALIGNMENT_FAULTS
        PULLFRAME
 



Home | Main Index | Thread Index | Old Index