]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/vm/vm_map.c
xnu-201.14.tar.gz
[apple/xnu.git] / osfmk / vm / vm_map.c
index 40e3da3fa35c077acdb9ceeea6c0ea88a9bc51fc..f7c440eb6fbc5962a955c8803e1a643c9c9695b7 100644 (file)
@@ -1191,8 +1191,6 @@ vm_map_pmap_enter(
        vm_prot_t               protection)
 {
 
-       vm_machine_attribute_val_t mv_cache_sync = MATTR_VAL_CACHE_SYNC;
-       
        while (addr < end_addr) {
                register vm_page_t      m;
 
@@ -1216,24 +1214,20 @@ vm_map_pmap_enter(
                        printf("map: %x, addr: %x, object: %x, offset: %x\n",
                                map, addr, object, offset);
                }
-
                m->busy = TRUE;
+
+               if (m->no_isync == TRUE) {
+                       pmap_sync_caches_phys(m->phys_addr);
+
+                       m->no_isync = FALSE;
+               }
                vm_object_unlock(object);
 
                PMAP_ENTER(map->pmap, addr, m,
                           protection, FALSE);
 
-               if (m->no_isync) {
-                       pmap_attribute(map->pmap,
-                              addr,
-                              PAGE_SIZE,
-                              MATTR_CACHE,
-                              &mv_cache_sync);
-               }
                vm_object_lock(object);
 
-               m->no_isync = FALSE;
-
                PAGE_WAKEUP_DONE(m);
                vm_page_lock_queues();
                if (!m->active && !m->inactive)