Source-Changes-HG archive

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

[src/netbsd-1-4]: src/sys/uvm Pull up revision 1.16 (via patch, requested by ...



details:   https://anonhg.NetBSD.org/src/rev/6c2ee15503b6
branches:  netbsd-1-4
changeset: 470894:6c2ee15503b6
user:      he <he%NetBSD.org@localhost>
date:      Sat Sep 09 16:05:32 2000 +0000

description:
Pull up revision 1.16 (via patch, requested by chs):
  In uvm_coredump(), avoid dumping parts of the stack multiple
  times while skipping parts of the stack that hasn't been used.

diffstat:

 sys/uvm/uvm_unix.c |  12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diffs (39 lines):

diff -r 0948035c07ea -r 6c2ee15503b6 sys/uvm/uvm_unix.c
--- a/sys/uvm/uvm_unix.c        Sat Sep 09 16:00:44 2000 +0000
+++ b/sys/uvm/uvm_unix.c        Sat Sep 09 16:05:32 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_unix.c,v 1.8 1999/03/25 18:48:56 mrg Exp $ */
+/*     $NetBSD: uvm_unix.c,v 1.8.2.1 2000/09/09 16:05:32 he Exp $      */
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -188,12 +188,13 @@
        register struct vmspace *vm = p->p_vmspace;
        register vm_map_t map = &vm->vm_map;
        register vm_map_entry_t entry;
-       vaddr_t start, end;
+       vaddr_t start, end, maxstack;
        struct coreseg cseg;
        off_t offset;
        int flag, error = 0;
 
        offset = chdr->c_hdrsize + chdr->c_seghdrsize + chdr->c_cpusize;
+       maxstack = trunc_page(USRSTACK - ctob(vm->vm_ssize));
 
        for (entry = map->header.next; entry != &map->header;
            entry = entry->next) {
@@ -216,10 +217,11 @@
                        end = VM_MAXUSER_ADDRESS;
 
                if (start >= (vaddr_t)vm->vm_maxsaddr) {
+                       if (end <= maxstack)
+                               continue;
+                       if (start < maxstack)
+                               start = maxstack;
                        flag = CORE_STACK;
-                       start = trunc_page(USRSTACK - ctob(vm->vm_ssize));
-                       if (start >= end)
-                               continue;
                } else
                        flag = CORE_DATA;
 



Home | Main Index | Thread Index | Old Index