]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/i386/read_fault.c
xnu-792.24.17.tar.gz
[apple/xnu.git] / osfmk / i386 / read_fault.c
index 1af4a97f214f933991a8275f7dd73190268bc487..67dc983589cf5f35648182dddf173c776b7707a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
@@ -84,20 +84,19 @@ intel_read_fault(
        vm_object_offset_t      offset;         /* Top-level offset */
        vm_prot_t               prot;           /* Protection for mapping */
        vm_behavior_t           behavior;       /* Expected paging behavior */
-       vm_object_offset_t      lo_offset, hi_offset;
+       vm_map_offset_t         lo_offset, hi_offset;
        vm_page_t               result_page;    /* Result of vm_fault_page */
        vm_page_t               top_page;       /* Placeholder page */
        boolean_t               wired;          /* Is map region wired? */
        kern_return_t           result;
        register vm_page_t      m;
-       vm_map_t                pmap_map;
+       vm_map_t                map_pmap;
        vm_map_t                original_map = map;
        thread_t                cur_thread;
        boolean_t               funnel_set;
-       funnel_t                *curflock;
+       funnel_t                *curflock = NULL;
 
        cur_thread = current_thread();
-
        if ((cur_thread->funnel_state & TH_FN_OWNED) == TH_FN_OWNED) {
                funnel_set = TRUE;
                curflock = cur_thread->funnel_lock;
@@ -118,7 +117,7 @@ intel_read_fault(
        result = vm_map_lookup_locked(&map, vaddr, VM_PROT_READ, &version,
                                      &object, &offset, &prot, &wired,
                                      &behavior, &lo_offset, 
-                                     &hi_offset, &pmap_map);
+                                     &hi_offset, &map_pmap);
        
        vm_map_unlock_read(map);
 
@@ -128,9 +127,9 @@ intel_read_fault(
                return (result);
        }
 
-       if(pmap_map != map) {
-               vm_map_reference(pmap_map);
-               vm_map_unlock_read(pmap_map);
+       if(map_pmap != map) {
+               vm_map_reference(map_pmap);
+               vm_map_unlock_read(map_pmap);
        }
 
        /*
@@ -150,8 +149,8 @@ intel_read_fault(
 
        if (result != VM_FAULT_SUCCESS) {
            vm_object_deallocate(object);
-           if(pmap_map != map) {
-                       vm_map_deallocate(pmap_map);
+           if(map_pmap != map) {
+                       vm_map_deallocate(map_pmap);
           }
 
            switch (result) {
@@ -209,8 +208,8 @@ intel_read_fault(
            vm_object_offset_t  retry_offset;
            vm_prot_t           retry_prot;
 
-               if (map != pmap_map) {
-                       vm_map_deallocate(pmap_map);
+               if (map != map_pmap) {
+                       vm_map_deallocate(map_pmap);
                }
            
                map = original_map;
@@ -219,7 +218,7 @@ intel_read_fault(
            result = vm_map_lookup_locked(&map, vaddr, VM_PROT_READ, &version,
                                &retry_object, &retry_offset, &retry_prot,
                                &wired, &behavior, &lo_offset, 
-                               &hi_offset, &pmap_map);
+                               &hi_offset, &map_pmap);
 
            if (result != KERN_SUCCESS) {
                vm_map_unlock_read(map);
@@ -231,8 +230,8 @@ intel_read_fault(
                        return (result);
            }
 
-               if (map != pmap_map) {
-                       vm_map_reference(pmap_map);
+               if (map != map_pmap) {
+                       vm_map_reference(map_pmap);
                }
 
            vm_object_unlock(retry_object);
@@ -241,9 +240,9 @@ intel_read_fault(
                        vm_object_lock(m->object);
                        RELEASE_PAGE(m);
                vm_map_unlock_read(map);
-               if(pmap_map != map) {
-                               vm_map_unlock_read(pmap_map);
-                               vm_map_deallocate(pmap_map);
+               if(map_pmap != map) {
+                               vm_map_unlock_read(map_pmap);
+                               vm_map_deallocate(map_pmap);
                        }
                        UNLOCK_AND_DEALLOCATE;
                        goto RetryFault;
@@ -254,11 +253,11 @@ intel_read_fault(
         *      Put the page in the physical map.
         */
 
-       PMAP_ENTER(pmap_map->pmap, vaddr, m, VM_PROT_READ, PMAP_DEFAULT_CACHE, wired);
+       PMAP_ENTER(map_pmap->pmap, vaddr, m, VM_PROT_READ, PMAP_DEFAULT_CACHE, wired);
 
-       if(pmap_map != map) {
-               vm_map_unlock_read(pmap_map);
-               vm_map_deallocate(pmap_map);
+       if(map_pmap != map) {
+               vm_map_unlock_read(map_pmap);
+               vm_map_deallocate(map_pmap);
        }
        
        vm_object_lock(m->object);