aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_exec.c12
-rw-r--r--sys/kern/kern_kcov.c3
-rw-r--r--sys/kern/kern_sendfile.c10
-rw-r--r--sys/kern/sys_process.c5
-rw-r--r--sys/kern/uipc_mbuf.c4
-rw-r--r--sys/kern/uipc_shm.c7
6 files changed, 5 insertions, 36 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index ed8f55c4afa9..2dd04d2417db 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -981,10 +981,8 @@ exec_map_first_page(struct image_params *imgp)
if (ma[0]->valid != VM_PAGE_BITS_ALL) {
vm_page_xbusy(ma[0]);
if (!vm_pager_has_page(object, 0, NULL, &after)) {
- vm_page_lock(ma[0]);
vm_page_unwire_noq(ma[0]);
vm_page_free(ma[0]);
- vm_page_unlock(ma[0]);
VM_OBJECT_WUNLOCK(object);
return (EIO);
}
@@ -1008,13 +1006,9 @@ exec_map_first_page(struct image_params *imgp)
initial_pagein = i;
rv = vm_pager_get_pages(object, ma, initial_pagein, NULL, NULL);
if (rv != VM_PAGER_OK) {
- for (i = 0; i < initial_pagein; i++) {
- vm_page_lock(ma[i]);
- if (i == 0)
- vm_page_unwire_noq(ma[i]);
+ vm_page_unwire_noq(ma[0]);
+ for (i = 0; i < initial_pagein; i++)
vm_page_free(ma[i]);
- vm_page_unlock(ma[i]);
- }
VM_OBJECT_WUNLOCK(object);
return (EIO);
}
@@ -1039,9 +1033,7 @@ exec_unmap_first_page(struct image_params *imgp)
m = sf_buf_page(imgp->firstpage);
sf_buf_free(imgp->firstpage);
imgp->firstpage = NULL;
- vm_page_lock(m);
vm_page_unwire(m, PQ_ACTIVE);
- vm_page_unlock(m);
}
}
diff --git a/sys/kern/kern_kcov.c b/sys/kern/kern_kcov.c
index 238529f98a75..e84b403cd31e 100644
--- a/sys/kern/kern_kcov.c
+++ b/sys/kern/kern_kcov.c
@@ -408,10 +408,7 @@ kcov_free(struct kcov_info *info)
VM_OBJECT_WLOCK(info->bufobj);
m = vm_page_lookup(info->bufobj, 0);
for (i = 0; i < info->bufsize / PAGE_SIZE; i++) {
- vm_page_lock(m);
vm_page_unwire_noq(m);
- vm_page_unlock(m);
-
m = vm_page_next(m);
}
VM_OBJECT_WUNLOCK(info->bufobj);
diff --git a/sys/kern/kern_sendfile.c b/sys/kern/kern_sendfile.c
index b350fa85ac38..5e1c49dca99e 100644
--- a/sys/kern/kern_sendfile.c
+++ b/sys/kern/kern_sendfile.c
@@ -415,11 +415,8 @@ sendfile_swapin(vm_object_t obj, struct sf_io *sfio, int *nios, off_t off,
&sendfile_iodone, sfio);
if (rv != VM_PAGER_OK) {
for (j = i; j < i + count; j++) {
- if (pa[j] != bogus_page) {
- vm_page_lock(pa[j]);
+ if (pa[j] != bogus_page)
vm_page_unwire(pa[j], PQ_INACTIVE);
- vm_page_unlock(pa[j]);
- }
}
VM_OBJECT_WUNLOCK(obj);
return (EIO);
@@ -932,11 +929,8 @@ retry_space:
m != NULL ? SFB_NOWAIT : SFB_CATCH);
if (sf == NULL) {
SFSTAT_INC(sf_allocfail);
- for (int j = i; j < npages; j++) {
- vm_page_lock(pa[j]);
+ for (int j = i; j < npages; j++)
vm_page_unwire(pa[j], PQ_INACTIVE);
- vm_page_unlock(pa[j]);
- }
if (m == NULL)
softerr = ENOBUFS;
fixspace(npages, i, off, &space);
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index d2b5ea2434a8..8e8dae7083ee 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -312,10 +312,7 @@ proc_rwmem(struct proc *p, struct uio *uio)
/*
* Release the page.
*/
- vm_page_lock(m);
- if (vm_page_unwire(m, PQ_ACTIVE) && m->object == NULL)
- vm_page_free(m);
- vm_page_unlock(m);
+ vm_page_unwire(m, PQ_ACTIVE);
} while (error == 0 && uio->uio_resid > 0);
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index c9f7e4ca01b0..c97042f6dfae 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -1621,10 +1621,6 @@ mb_free_mext_pgs(struct mbuf *m)
ext_pgs = m->m_ext.ext_pgs;
for (int i = 0; i < ext_pgs->npgs; i++) {
pg = PHYS_TO_VM_PAGE(ext_pgs->pa[i]);
- /*
- * Note: page is not locked, as it has no
- * object and is not on any queues.
- */
vm_page_unwire_noq(pg);
vm_page_free(pg);
}
diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c
index de8451f951dd..4c5e67524a16 100644
--- a/sys/kern/uipc_shm.c
+++ b/sys/kern/uipc_shm.c
@@ -198,10 +198,8 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio)
printf(
"uiomove_object: vm_obj %p idx %jd valid %x pager error %d\n",
obj, idx, m->valid, rv);
- vm_page_lock(m);
vm_page_unwire_noq(m);
vm_page_free(m);
- vm_page_unlock(m);
VM_OBJECT_WUNLOCK(obj);
return (EIO);
}
@@ -217,9 +215,7 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio)
vm_pager_page_unswapped(m);
VM_OBJECT_WUNLOCK(obj);
}
- vm_page_lock(m);
vm_page_unwire(m, PQ_ACTIVE);
- vm_page_unlock(m);
return (error);
}
@@ -474,7 +470,6 @@ retry:
goto retry;
rv = vm_pager_get_pages(object, &m, 1, NULL,
NULL);
- vm_page_lock(m);
if (rv == VM_PAGER_OK) {
/*
* Since the page was not resident,
@@ -485,11 +480,9 @@ retry:
* as an access.
*/
vm_page_launder(m);
- vm_page_unlock(m);
vm_page_xunbusy(m);
} else {
vm_page_free(m);
- vm_page_unlock(m);
VM_OBJECT_WUNLOCK(object);
return (EIO);
}