summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-06-07 02:36:08 +0000
committerdyson <dyson@FreeBSD.org>1996-06-07 02:36:08 +0000
commit7ccbe485e6ae568fc13bdca538625ba84f3dae18 (patch)
treed64cdb825b1dd3ccefb1f636c6482b59fee8beb0 /sys/i386
parent428ee3c3355ecf218c47b06437118e1874af24c8 (diff)
downloadFreeBSD-src-7ccbe485e6ae568fc13bdca538625ba84f3dae18.zip
FreeBSD-src-7ccbe485e6ae568fc13bdca538625ba84f3dae18.tar.gz
Fix a bug in the pmap_object_init_pt routine that pages aren't taken
from the cache queue before being mapped into the process.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/pmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index 2b48725..27a5236 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
- * $Id: pmap.c,v 1.99 1996/06/05 03:31:26 dyson Exp $
+ * $Id: pmap.c,v 1.100 1996/06/05 06:36:21 dyson Exp $
*/
/*
@@ -1797,6 +1797,8 @@ pmap_object_init_pt(pmap, addr, object, pindex, size, limit)
((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) &&
(p->busy == 0) &&
(p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) {
+ if (p->queue == PQ_CACHE)
+ vm_page_deactivate(p);
p->flags |= PG_BUSY;
pmap_enter_quick(pmap,
addr + (tmpidx << PAGE_SHIFT),
OpenPOWER on IntegriCloud