diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2019-12-02 22:38:25 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2019-12-02 22:38:25 +0000 |
commit | 4504268a1b3cc208ac7fddfae567217aa1f2b68d (patch) | |
tree | 3a68d717dff10738696959bec8d615a026844b39 /sys/compat/cloudabi | |
parent | e15046952d71a1f9ab3b16f9cda66577b7787078 (diff) | |
download | src-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.c | 5 |
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, |