Source-Changes-HG archive

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

[src/trunk]: src/sys/uvm The i386 and pc532 pmaps are officially fixed.



details:   https://anonhg.NetBSD.org/src/rev/175ade158179
branches:  trunk
changeset: 473729:175ade158179
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Thu Jun 17 00:24:10 1999 +0000

description:
The i386 and pc532 pmaps are officially fixed.

diffstat:

 sys/uvm/uvm_glue.c |  13 +------------
 sys/uvm/uvm_map.c  |  50 +-------------------------------------------------
 2 files changed, 2 insertions(+), 61 deletions(-)

diffs (105 lines):

diff -r f40700d46aa0 -r 175ade158179 sys/uvm/uvm_glue.c
--- a/sys/uvm/uvm_glue.c        Thu Jun 17 00:22:41 1999 +0000
+++ b/sys/uvm/uvm_glue.c        Thu Jun 17 00:24:10 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_glue.c,v 1.23 1999/05/28 20:49:51 thorpej Exp $    */
+/*     $NetBSD: uvm_glue.c,v 1.24 1999/06/17 00:24:10 thorpej Exp $    */
 
 /* 
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -160,17 +160,6 @@
        boolean_t rv;
        vm_prot_t prot = rw == B_READ ? VM_PROT_READ : VM_PROT_WRITE;
 
-#if defined(i386) || defined(pc532)
-       /*
-        * XXX - specially disallow access to user page tables - they are
-        * in the map.  This is here until i386 & pc532 pmaps are fixed...
-        */
-       if ((vaddr_t) addr >= VM_MAXUSER_ADDRESS
-           || (vaddr_t) addr + len > VM_MAXUSER_ADDRESS
-           || (vaddr_t) addr + len <= (vaddr_t) addr)
-               return (FALSE);
-#endif
-
        rv = uvm_map_checkprot(&curproc->p_vmspace->vm_map,
                        trunc_page(addr), round_page(addr+len), prot);
        return(rv);
diff -r f40700d46aa0 -r 175ade158179 sys/uvm/uvm_map.c
--- a/sys/uvm/uvm_map.c Thu Jun 17 00:22:41 1999 +0000
+++ b/sys/uvm/uvm_map.c Thu Jun 17 00:24:10 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_map.c,v 1.57 1999/06/16 22:11:23 thorpej Exp $     */
+/*     $NetBSD: uvm_map.c,v 1.58 1999/06/17 00:24:10 thorpej Exp $     */
 
 /* 
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -2697,25 +2697,6 @@
                nvm = uvmspace_alloc(map->min_offset, map->max_offset, 
                         (map->flags & VM_MAP_PAGEABLE) ? TRUE : FALSE);
 
-#if (defined(i386) || defined(pc532)) && !defined(PMAP_NEW)
-               /* 
-                * allocate zero fill area in the new vmspace's map for user
-                * page tables for ports that have old style pmaps that keep
-                * user page tables in the top part of the process' address
-                * space.
-                *
-                * XXXCDC: this should go away once all pmaps are fixed
-                */
-               { 
-                       vaddr_t addr = VM_MAXUSER_ADDRESS;
-                       if (uvm_map(&nvm->vm_map, &addr, VM_MAX_ADDRESS - addr,
-                           NULL, UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_ALL,
-                           UVM_PROT_ALL, UVM_INH_NONE, UVM_ADV_NORMAL,
-                           UVM_FLAG_FIXED|UVM_FLAG_COPYONW)) != KERN_SUCCESS)
-                               panic("vm_allocate of PT page area failed");
-               }
-#endif
-
                /*
                 * install new vmspace and drop our ref to the old one.
                 */
@@ -2788,16 +2769,6 @@
        boolean_t       protect_child;
        UVMHIST_FUNC("uvmspace_fork"); UVMHIST_CALLED(maphist);
 
-#if (defined(i386) || defined(pc532)) && !defined(PMAP_NEW)
-       /*    
-        * avoid copying any of the parent's pagetables or other per-process
-        * objects that reside in the map by marking all of them non-inheritable
-        * XXXCDC: should go away
-        */
-       (void) uvm_map_inherit(old_map, VM_MAXUSER_ADDRESS, VM_MAX_ADDRESS, 
-                        VM_INHERIT_NONE);
-#endif
-
        vm_map_lock(old_map);
 
        vm2 = uvmspace_alloc(old_map->min_offset, old_map->max_offset,
@@ -3065,25 +3036,6 @@
        new_map->size = old_map->size;
        vm_map_unlock(old_map); 
 
-#if (defined(i386) || defined(pc532)) && !defined(PMAP_NEW)
-       /* 
-        * allocate zero fill area in the new vmspace's map for user
-        * page tables for ports that have old style pmaps that keep
-        * user page tables in the top part of the process' address
-        * space.
-        *
-        * XXXCDC: this should go away once all pmaps are fixed
-        */
-       {
-               vaddr_t addr = VM_MAXUSER_ADDRESS;
-               if (uvm_map(new_map, &addr, VM_MAX_ADDRESS - addr, NULL,
-                   UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_ALL,
-                   UVM_PROT_ALL, UVM_INH_NONE, UVM_ADV_NORMAL,
-                   UVM_FLAG_FIXED|UVM_FLAG_COPYONW)) != KERN_SUCCESS)
-                       panic("vm_allocate of PT page area failed");
-       }
-#endif
-
 #ifdef SYSVSHM
        if (vm1->vm_shm)
                shmfork(vm1, vm2);



Home | Main Index | Thread Index | Old Index