From ee113343eb1c8cfc690137ad83e37e1cd3c8af10 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Wed, 18 Dec 2002 20:16:22 +0000 Subject: [PATCH] Hold the page queues lock when performing vm_page_busy(). --- sys/kern/kern_exec.c | 2 ++ sys/kern/kern_subr.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 6005ea060823..58c0f820b5b1 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -758,7 +758,9 @@ exec_map_first_page(imgp) break; if (ma[i]->valid) break; + vm_page_lock_queues(); vm_page_busy(ma[i]); + vm_page_unlock_queues(); } else { ma[i] = vm_page_alloc(object, i, VM_ALLOC_NORMAL); diff --git a/sys/kern/kern_subr.c b/sys/kern/kern_subr.c index 2df1a130a5b2..07708fc1a39f 100644 --- a/sys/kern/kern_subr.c +++ b/sys/kern/kern_subr.c @@ -125,7 +125,9 @@ vm_pgmoveco(mapa, srcobj, kaddr, uaddr) panic("vm_pgmoveco: renaming busy page"); } kpindex = kern_pg->pindex; + vm_page_lock_queues(); vm_page_busy(kern_pg); + vm_page_unlock_queues(); vm_page_rename(kern_pg, uobject, upindex); vm_page_flag_clear(kern_pg, PG_BUSY); kern_pg->valid = VM_PAGE_BITS_ALL;