Page MenuHomeFreeBSD

D24029.diff
No OneTemporary

D24029.diff

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;

File Metadata

Mime Type
text/plain
Expires
Sat, Jul 18, 4:26 PM (21 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35200550
Default Alt Text
D24029.diff (2 KB)

Event Timeline