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 pullup 1.18->1.19 (thorpej)



details:   https://anonhg.NetBSD.org/src/rev/e529e0f1208e
branches:  netbsd-1-4
changeset: 468712:e529e0f1208e
user:      perry <perry%NetBSD.org@localhost>
date:      Fri Jun 18 16:51:43 1999 +0000

description:
pullup 1.18->1.19 (thorpej)

diffstat:

 sys/uvm/uvm_page.c |  15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diffs (47 lines):

diff -r 3050af6b63cf -r e529e0f1208e sys/uvm/uvm_page.c
--- a/sys/uvm/uvm_page.c        Fri Jun 18 16:49:45 1999 +0000
+++ b/sys/uvm/uvm_page.c        Fri Jun 18 16:51:43 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_page.c,v 1.17.2.1 1999/04/16 16:29:34 chs Exp $    */
+/*     $NetBSD: uvm_page.c,v 1.17.2.2 1999/06/18 16:51:43 perry Exp $  */
 
 /* 
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -385,6 +385,7 @@
 
 #else /* !PMAP_STEAL_MEMORY */
 
+       static boolean_t initialized = FALSE;
        vaddr_t addr, vaddr;
        paddr_t paddr;
 
@@ -392,21 +393,25 @@
        size = round_page(size);
 
        /*
-        * on first call to this function init ourselves.   we detect this
-        * by checking virtual_space_start/end which are in the zero'd BSS area.
+        * on first call to this function, initialize ourselves.
         */
-
-       if (virtual_space_start == virtual_space_end) {
+       if (initialized == FALSE) {
                pmap_virtual_space(&virtual_space_start, &virtual_space_end);
 
                /* round it the way we like it */
                virtual_space_start = round_page(virtual_space_start);
                virtual_space_end = trunc_page(virtual_space_end);
+
+               initialized = TRUE;
        }
 
        /*
         * allocate virtual memory for this request
         */
+       if (virtual_space_start == virtual_space_end ||
+           (virtual_space_end - virtual_space_start) < size) {
+               panic("uvm_pageboot_alloc: out of virtual space");
+       }
 
        addr = virtual_space_start;
        virtual_space_start += size;



Home | Main Index | Thread Index | Old Index