Index: sys/compat/cloudabi/cloudabi_vdso.c =================================================================== --- sys/compat/cloudabi/cloudabi_vdso.c +++ sys/compat/cloudabi/cloudabi_vdso.c @@ -62,9 +62,9 @@ VM_OBJECT_WLOCK(obj); m = vm_page_grab(obj, i, VM_ALLOC_ZERO); VM_OBJECT_WUNLOCK(obj); - vm_page_valid(m); - vm_page_xunbusy(m); + /* XXX This page should be wired. */ + vm_page_xunbusy(m); pmap_qenter(addr, &m, 1); memcpy((void *)addr, begin + i * PAGE_SIZE, MIN(vdso_length - i * PAGE_SIZE, PAGE_SIZE)); Index: sys/compat/linux/linux_vdso.c =================================================================== --- sys/compat/linux/linux_vdso.c +++ sys/compat/linux/linux_vdso.c @@ -85,7 +85,7 @@ VM_OBJECT_WLOCK(obj); m = vm_page_grab(obj, 0, VM_ALLOC_ZERO); VM_OBJECT_WUNLOCK(obj); - vm_page_valid(m); + /* XXX This page should be wired. */ vm_page_xunbusy(m); addr = kva_alloc(PAGE_SIZE); pmap_qenter(addr, &m, 1); Index: sys/dev/spibus/spigen.c =================================================================== --- sys/dev/spibus/spigen.c +++ sys/dev/spibus/spigen.c @@ -298,7 +298,7 @@ { struct spigen_mmap *mmap; vm_page_t *m; - size_t n, pages; + size_t pages; int error; if (size == 0 || @@ -323,12 +323,8 @@ m = malloc(sizeof(*m) * pages, M_TEMP, M_WAITOK); VM_OBJECT_WLOCK(mmap->bufobj); vm_object_reference_locked(mmap->bufobj); // kernel and userland both - for (n = 0; n < pages; n++) { - m[n] = vm_page_grab(mmap->bufobj, n, - VM_ALLOC_ZERO | VM_ALLOC_WIRED); - vm_page_valid(m[n]); - vm_page_xunbusy(m[n]); - } + (void)vm_page_grab_pages(mmap->bufobj, 0, + VM_ALLOC_ZERO | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED, m, pages); VM_OBJECT_WUNLOCK(mmap->bufobj); pmap_qenter(mmap->kvaddr, m, pages); free(m, M_TEMP); Index: sys/kern/kern_kcov.c =================================================================== --- sys/kern/kern_kcov.c +++ sys/kern/kern_kcov.c @@ -383,9 +383,7 @@ VM_OBJECT_WLOCK(info->bufobj); for (n = 0; n < pages; n++) { m = vm_page_grab(info->bufobj, n, - VM_ALLOC_ZERO | VM_ALLOC_WIRED); - vm_page_valid(m); - vm_page_xunbusy(m); + VM_ALLOC_ZERO | VM_ALLOC_WIRED | VM_ALLOC_NOBUSY); pmap_qenter(info->kvaddr + n * PAGE_SIZE, &m, 1); } VM_OBJECT_WUNLOCK(info->bufobj); Index: sys/kern/kern_sharedpage.c =================================================================== --- sys/kern/kern_sharedpage.c +++ sys/kern/kern_sharedpage.c @@ -114,10 +114,9 @@ shared_page_obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE, VM_PROT_DEFAULT, 0, NULL); VM_OBJECT_WLOCK(shared_page_obj); - m = vm_page_grab(shared_page_obj, 0, VM_ALLOC_ZERO); + m = vm_page_grab(shared_page_obj, 0, + VM_ALLOC_ZERO | VM_ALLOC_WIRED | VM_ALLOC_NOBUSY); VM_OBJECT_WUNLOCK(shared_page_obj); - vm_page_valid(m); - vm_page_xunbusy(m); addr = kva_alloc(PAGE_SIZE); pmap_qenter(addr, &m, 1); shared_page_mapping = (char *)addr;