diff options
author | dyson <dyson@FreeBSD.org> | 1996-06-07 02:36:08 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-06-07 02:36:08 +0000 |
commit | 7ccbe485e6ae568fc13bdca538625ba84f3dae18 (patch) | |
tree | d64cdb825b1dd3ccefb1f636c6482b59fee8beb0 /sys/i386 | |
parent | 428ee3c3355ecf218c47b06437118e1874af24c8 (diff) | |
download | FreeBSD-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.c | 4 |
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), |