aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/cloudabi
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2019-12-02 22:38:25 +0000
committerJeff Roberson <jeff@FreeBSD.org>2019-12-02 22:38:25 +0000
commit4504268a1b3cc208ac7fddfae567217aa1f2b68d (patch)
tree3a68d717dff10738696959bec8d615a026844b39 /sys/compat/cloudabi
parente15046952d71a1f9ab3b16f9cda66577b7787078 (diff)
downloadsrc-4504268a1b3cc208ac7fddfae567217aa1f2b68d.tar.gz
src-4504268a1b3cc208ac7fddfae567217aa1f2b68d.zip
Fix the last few cases that grab without busy or valid. The grab functions must
return the page in some held state for consistency elsewhere. Reviewed by: alc, kib, markj Differential Revision: https://reviews.freebsd.org/D22610
Notes
Notes: svn path=/head/; revision=355313
Diffstat (limited to 'sys/compat/cloudabi')
-rw-r--r--sys/compat/cloudabi/cloudabi_vdso.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/compat/cloudabi/cloudabi_vdso.c b/sys/compat/cloudabi/cloudabi_vdso.c
index 27c3d365af83..b89dd68e683c 100644
--- a/sys/compat/cloudabi/cloudabi_vdso.c
+++ b/sys/compat/cloudabi/cloudabi_vdso.c
@@ -59,9 +59,10 @@ cloudabi_vdso_init(struct sysentvec *sv, char *begin, char *end)
addr = kva_alloc(PAGE_SIZE);
for (i = 0; i < pages; ++i) {
VM_OBJECT_WLOCK(obj);
- m = vm_page_grab(obj, i, VM_ALLOC_NOBUSY | VM_ALLOC_ZERO);
- m->valid = VM_PAGE_BITS_ALL;
+ m = vm_page_grab(obj, i, VM_ALLOC_ZERO);
VM_OBJECT_WUNLOCK(obj);
+ vm_page_valid(m);
+ vm_page_xunbusy(m);
pmap_qenter(addr, &m, 1);
memcpy((void *)addr, begin + i * PAGE_SIZE,