Source-Changes-HG archive

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

[src/netbsd-7]: src/sys/arch/sparc64/sparc64 Pull up following revision(s) (r...



details:   https://anonhg.NetBSD.org/src/rev/453fd365b5d5
branches:  netbsd-7
changeset: 799060:453fd365b5d5
user:      snj <snj%NetBSD.org@localhost>
date:      Mon Mar 09 07:54:12 2015 +0000

description:
Pull up following revision(s) (requested by nakayama in ticket #568):
        sys/arch/sparc64/sparc64/locore.s: revision 1.379, 1.380
Use panic stack temporarily for calling prom_printf in a trap
handler.
It seems that openfirmware cannot handle over 4GB pointers, and
stack pointers may point to over 4GB since VA layout was rearranged
by rev 1.33 of vmparam.h.  Therefore, use panic stack to avoid
panicking in OF_write used by prom_printf.
--
PANICSTACK is a pointer itself, not a pointer to pointer.

diffstat:

 sys/arch/sparc64/sparc64/locore.s |  13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diffs (41 lines):

diff -r ac6d59f1ddf7 -r 453fd365b5d5 sys/arch/sparc64/sparc64/locore.s
--- a/sys/arch/sparc64/sparc64/locore.s Mon Mar 09 07:46:05 2015 +0000
+++ b/sys/arch/sparc64/sparc64/locore.s Mon Mar 09 07:54:12 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.369.2.1 2014/08/14 06:50:37 martin Exp $  */
+/*     $NetBSD: locore.s,v 1.369.2.2 2015/03/09 07:54:12 snj Exp $     */
 
 /*
  * Copyright (c) 2006-2010 Matthew R. Green
@@ -2126,9 +2126,7 @@
        wrpr    %g0, 0, %otherwin
        or      %lo(2f), %o0, %o0
        wrpr    %g0, WSTATE_KERN, %wstate
-       sethi   %hi(PANICSTACK), %sp
-       LDPTR   [%sp + %lo(PANICSTACK)], %sp
-       add     %sp, -CC64FSZ-STKB, %sp
+       set     PANICSTACK-CC64FSZ-STKB, %sp
        ta      1; nop                                  ! This helps out traptrace.
        call    _C_LABEL(panic)                         ! This needs to be fixed properly but we should panic here
         mov    %g1, %o1
@@ -2908,9 +2906,7 @@
        cmp     %g7, WSTATE_KERN
        bnz,pt  %icc, 1f                ! User stack -- we'll blow it away
         nop
-       sethi   %hi(PANICSTACK), %sp
-       LDPTR   [%sp + %lo(PANICSTACK)], %sp
-       add     %sp, -CC64FSZ-STKB, %sp 
+       set     PANICSTACK-CC64FSZ-STKB, %sp
 1:
 #endif
        rdpr    %tt, %g4
@@ -3528,7 +3524,8 @@
         nop
 #endif
 #if 1
-       STACKFRAME(-CC64FSZ)            ! Get a clean register window
+       set     PANICSTACK-STKB, %g1    ! Use panic stack temporarily
+       save    %g1, -CC64FSZ, %sp      ! Get a clean register window
        LOAD_ASCIZ(%o0, "interrupt_vector: spurious vector %lx at pil %d\r\n")
        mov     %g7, %o1
        GLOBTOLOC



Home | Main Index | Thread Index | Old Index