Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_fault.c
Show First 20 Lines • Show All 1,139 Lines • ▼ Show 20 Lines | while ((m = vm_page_lookup(lobject, pindex)) == NULL && | ||||
VM_OBJECT_RLOCK(backing_object); | VM_OBJECT_RLOCK(backing_object); | ||||
VM_OBJECT_RUNLOCK(lobject); | VM_OBJECT_RUNLOCK(lobject); | ||||
lobject = backing_object; | lobject = backing_object; | ||||
} | } | ||||
if (m == NULL) { | if (m == NULL) { | ||||
VM_OBJECT_RUNLOCK(lobject); | VM_OBJECT_RUNLOCK(lobject); | ||||
break; | break; | ||||
} | } | ||||
if (m->valid == VM_PAGE_BITS_ALL && | if (m->valid == VM_PAGE_BITS_ALL) | ||||
(m->flags & PG_FICTITIOUS) == 0) | |||||
pmap_enter_quick(pmap, addr, m, entry->protection); | pmap_enter_quick(pmap, addr, m, entry->protection); | ||||
VM_OBJECT_RUNLOCK(lobject); | VM_OBJECT_RUNLOCK(lobject); | ||||
} | } | ||||
} | } | ||||
/* | /* | ||||
* Hold each of the physical pages that are mapped by the specified range of | * Hold each of the physical pages that are mapped by the specified range of | ||||
* virtual addresses, ["addr", "addr" + "len"), if those mappings are valid | * virtual addresses, ["addr", "addr" + "len"), if those mappings are valid | ||||
▲ Show 20 Lines • Show All 293 Lines • Show Last 20 Lines |