summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1998-01-31 20:30:18 +0000
committerdyson <dyson@FreeBSD.org>1998-01-31 20:30:18 +0000
commit44cc663f3d24f0c53c23c3fe6af9fc017e83d523 (patch)
treedcb26e721282fdc59ea99bcc0e8b7d073dc56357 /sys/vm
parentf71f7b54be34061b94415924ac7530c1a73977db (diff)
downloadFreeBSD-src-44cc663f3d24f0c53c23c3fe6af9fc017e83d523.zip
FreeBSD-src-44cc663f3d24f0c53c23c3fe6af9fc017e83d523.tar.gz
contigalloc doesn't place the allocated page(s) into an object, and
now this breaks vm_page_wire (due to wired page accounting per object.) This should fix a problem as described by Donald Maddox.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_page.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 6837ecf..dea6b04 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91
- * $Id: vm_page.c,v 1.87 1998/01/22 17:30:41 dyson Exp $
+ * $Id: vm_page.c,v 1.88 1998/01/31 11:56:47 dyson Exp $
*/
/*
@@ -1185,7 +1185,8 @@ vm_page_wire(m)
vm_page_unqueue(m);
splx(s);
cnt.v_wire_count++;
- m->object->wire_count++;
+ if (m->object)
+ m->object->wire_count++;
}
(*vm_page_queues[PQ_NONE].lcnt)++;
m->wire_count++;
@@ -1211,7 +1212,8 @@ vm_page_unwire(m)
if (m->wire_count > 0) {
m->wire_count--;
if (m->wire_count == 0) {
- m->object->wire_count--;
+ if (m->object)
+ m->object->wire_count--;
cnt.v_wire_count--;
TAILQ_INSERT_TAIL(&vm_page_queue_active, m, pageq);
m->queue = PQ_ACTIVE;
OpenPOWER on IntegriCloud