Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/vax EEEK! The signal changes a while ago caused the...



details:   https://anonhg.NetBSD.org/src/rev/2b01baa9e381
branches:  trunk
changeset: 472567:2b01baa9e381
user:      ragge <ragge%NetBSD.org@localhost>
date:      Sun May 02 17:28:43 1999 +0000

description:
EEEK! The signal changes a while ago caused the user struct to be
on top of the "red zone" in the kernel stack. This phenomenon has
caused many unexplainable things to happen the last year.

diffstat:

 sys/arch/vax/include/param.h  |  5 +++--
 sys/arch/vax/vax/locore.c     |  4 ++--
 sys/arch/vax/vax/machdep.c    |  6 +++++-
 sys/arch/vax/vax/vm_machdep.c |  4 ++--
 4 files changed, 12 insertions(+), 7 deletions(-)

diffs (76 lines):

diff -r bf28f42bc937 -r 2b01baa9e381 sys/arch/vax/include/param.h
--- a/sys/arch/vax/include/param.h      Sun May 02 17:26:14 1999 +0000
+++ b/sys/arch/vax/include/param.h      Sun May 02 17:28:43 1999 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: param.h,v 1.35 1999/01/19 21:04:48 ragge Exp $    */
+/*      $NetBSD: param.h,v 1.36 1999/05/02 17:28:43 ragge Exp $    */
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
  * All rights reserved.
@@ -86,8 +86,9 @@
 #define        CLSIZELOG2      0               /* XXX - die */
 #define        CLSIZE          1               /* XXX - die */
 
-#define        UPAGES          1               /* pages of u-area */
+#define        UPAGES          2               /* pages of u-area */
 #define USPACE         (NBPG*UPAGES)
+#define        REDZONEADDR     (VAX_NBPG*3)    /* Must be > sizeof(struct user) */
 
 #ifndef MSGBUFSIZE
 #define MSGBUFSIZE     NBPG            /* default message buffer size */
diff -r bf28f42bc937 -r 2b01baa9e381 sys/arch/vax/vax/locore.c
--- a/sys/arch/vax/vax/locore.c Sun May 02 17:26:14 1999 +0000
+++ b/sys/arch/vax/vax/locore.c Sun May 02 17:28:43 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.c,v 1.35 1999/03/26 22:04:07 ragge Exp $        */
+/*     $NetBSD: locore.c,v 1.36 1999/05/02 17:28:43 ragge Exp $        */
 /*
  * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden.
  * All rights reserved.
@@ -301,7 +301,7 @@
        pmap_bootstrap();
 
        /* Now running virtual. set red zone for proc0 */
-       pt = kvtopte((u_int)proc0.p_addr + VAX_NBPG);
+       pt = kvtopte((u_int)proc0.p_addr + REDZONEADDR);
         pt->pg_v = 0;
 
        ((struct pcb *)proc0paddr)->framep = scratch;
diff -r bf28f42bc937 -r 2b01baa9e381 sys/arch/vax/vax/machdep.c
--- a/sys/arch/vax/vax/machdep.c        Sun May 02 17:26:14 1999 +0000
+++ b/sys/arch/vax/vax/machdep.c        Sun May 02 17:28:43 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.81 1999/05/01 16:13:45 ragge Exp $    */
+/* $NetBSD: machdep.c,v 1.82 1999/05/02 17:28:43 ragge Exp $    */
 
 /*
  * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden.
@@ -445,6 +445,10 @@
 //             ksym_init(&end, esym);
                ddb_init(*(int *)&end, ((int *)&end) + 1, esym);
        }
+#ifdef DEBUG
+       if (sizeof(struct user) > REDZONEADDR)
+               panic("struct user inside red zone");
+#endif
 #ifdef donotworkbyunknownreason
        if (boothowto & RB_KDB)
                Debugger();
diff -r bf28f42bc937 -r 2b01baa9e381 sys/arch/vax/vax/vm_machdep.c
--- a/sys/arch/vax/vax/vm_machdep.c     Sun May 02 17:26:14 1999 +0000
+++ b/sys/arch/vax/vax/vm_machdep.c     Sun May 02 17:28:43 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vm_machdep.c,v 1.47 1999/03/26 23:41:38 mycroft Exp $       */
+/*     $NetBSD: vm_machdep.c,v 1.48 1999/05/02 17:28:43 ragge Exp $         */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -115,7 +115,7 @@
        pmap = p2->p_vmspace->vm_map.pmap;
 
        /* Mark page invalid */
-       pt = kvtopte((u_int)p2->p_addr + VAX_NBPG);
+       pt = kvtopte((u_int)p2->p_addr + REDZONEADDR);
        pt->pg_v = 0; 
 
        /*



Home | Main Index | Thread Index | Old Index