diff options
author | alc <alc@FreeBSD.org> | 2015-10-06 05:49:00 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2015-10-06 05:49:00 +0000 |
commit | 945e362d2bdc9f7cc475b22a4d5eca8bb5b0e707 (patch) | |
tree | dbe6b449781164017d1748fbc3d79904e82131cc /sys/vm/vm_kern.c | |
parent | e8432e552902a6b0c09793be662ec5c08551e017 (diff) | |
download | FreeBSD-src-945e362d2bdc9f7cc475b22a4d5eca8bb5b0e707.zip FreeBSD-src-945e362d2bdc9f7cc475b22a4d5eca8bb5b0e707.tar.gz |
Exploit r288122 to address a cosmetic issue. Pages belonging to either
the kernel or kmem object can't be paged out. Since they can't be paged
out, they are never enqueued in a paging queue. Nonetheless, passing
PQ_INACTIVE to vm_page_unwire() in kmem_unback() creates the appearance
that these pages are being enqueued in the inactive queue. As of r288122,
we can avoid giving this false impression by passing PQ_NONE.
Submitted by: kmacy
Differential Revision: https://reviews.freebsd.org/D1674
Diffstat (limited to 'sys/vm/vm_kern.c')
-rw-r--r-- | sys/vm/vm_kern.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index f0aacf1..a636d74 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -386,7 +386,7 @@ kmem_unback(vm_object_t object, vm_offset_t addr, vm_size_t size) VM_OBJECT_WLOCK(object); for (i = 0; i < size; i += PAGE_SIZE) { m = vm_page_lookup(object, OFF_TO_IDX(offset + i)); - vm_page_unwire(m, PQ_INACTIVE); + vm_page_unwire(m, PQ_NONE); vm_page_free(m); } VM_OBJECT_WUNLOCK(object); |