diff options
author | alc <alc@FreeBSD.org> | 2004-07-13 02:49:22 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-07-13 02:49:22 +0000 |
commit | ea94acfaa697b466403b3bf0b16d4772ff5ab621 (patch) | |
tree | 6940f183ade6a21c79f62549b14a7c432d9a255a /sys/kern | |
parent | d35148311bebc5f935642333bd965c18b7682a74 (diff) | |
download | FreeBSD-src-ea94acfaa697b466403b3bf0b16d4772ff5ab621.zip FreeBSD-src-ea94acfaa697b466403b3bf0b16d4772ff5ab621.tar.gz |
Push down the acquisition and release of the page queues lock into
pmap_remove_pages(). (The implementation of pmap_remove_pages() is
optional. If pmap_remove_pages() is unimplemented, the acquisition and
release of the page queues lock is unnecessary.)
Remove spl calls from the alpha, arm, and ia64 pmap_remove_pages().
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_exec.c | 2 | ||||
-rw-r--r-- | sys/kern/kern_exit.c | 2 |
2 files changed, 0 insertions, 4 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 0c7a6d8..873a39c 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -864,10 +864,8 @@ exec_new_vmspace(imgp, sv) if (vmspace->vm_refcnt == 1 && vm_map_min(map) == sv->sv_minuser && vm_map_max(map) == sv->sv_maxuser) { shmexit(vmspace); - vm_page_lock_queues(); pmap_remove_pages(vmspace_pmap(vmspace), vm_map_min(map), vm_map_max(map)); - vm_page_unlock_queues(); vm_map_remove(map, vm_map_min(map), vm_map_max(map)); } else { vmspace_exec(p, sv->sv_minuser, sv->sv_maxuser); diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 056116d..1db90ab 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -275,10 +275,8 @@ retry: ++vm->vm_exitingcnt; if (--vm->vm_refcnt == 0) { shmexit(vm); - vm_page_lock_queues(); pmap_remove_pages(vmspace_pmap(vm), vm_map_min(&vm->vm_map), vm_map_max(&vm->vm_map)); - vm_page_unlock_queues(); (void) vm_map_remove(&vm->vm_map, vm_map_min(&vm->vm_map), vm_map_max(&vm->vm_map)); } |