summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/phys_pager.c2
-rw-r--r--sys/vm/vm_page.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/sys/vm/phys_pager.c b/sys/vm/phys_pager.c
index a93dda1..98c505c 100644
--- a/sys/vm/phys_pager.c
+++ b/sys/vm/phys_pager.c
@@ -147,7 +147,9 @@ phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage)
vm_page_zero_fill(m[i]);
vm_page_flag_set(m[i], PG_ZERO);
/* Switch off pv_entries */
+ vm_page_lock_queues();
vm_page_unmanage(m[i]);
+ vm_page_unlock_queues();
m[i]->valid = VM_PAGE_BITS_ALL;
m[i]->dirty = 0;
/* The requested page must remain busy, the others not. */
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 74eb575..6e08ec1 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -1211,6 +1211,7 @@ vm_page_unmanage(vm_page_t m)
int s;
s = splvm();
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if ((m->flags & PG_UNMANAGED) == 0) {
if (m->wire_count == 0)
vm_pageq_remove(m);
OpenPOWER on IntegriCloud