Index: sys/vm/vm_object.c =================================================================== --- sys/vm/vm_object.c +++ sys/vm/vm_object.c @@ -2133,6 +2133,7 @@ boolean_t vm_object_populate(vm_object_t object, vm_pindex_t start, vm_pindex_t end) { + struct pctrie_iter pages; vm_page_t m; vm_pindex_t pindex; int rv; @@ -2149,11 +2150,10 @@ */ } if (pindex > start) { - m = vm_page_lookup(object, start); - while (m != NULL && m->pindex < pindex) { + vm_page_iter_limit_init(&pages, object, pindex); + for (m = vm_radix_iter_lookup(&pages, start); + m != NULL; m = vm_radix_iter_step(&pages)) vm_page_xunbusy(m); - m = TAILQ_NEXT(m, listq); - } } return (pindex == end); }