Don't pmap_remove_pv mappings for unmanaged pages.

Closes PR mips/33166.  Reviewed by chuq@
This commit is contained in:
gdamore 2006-03-30 05:57:01 +00:00
parent e61c7de467
commit 689f73d8a7

View File

@ -1,4 +1,4 @@
/* $NetBSD: pmap.c,v 1.166 2005/12/24 20:07:19 perry Exp $ */
/* $NetBSD: pmap.c,v 1.167 2006/03/30 05:57:01 gdamore Exp $ */
/*-
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@ -74,7 +74,7 @@
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.166 2005/12/24 20:07:19 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.167 2006/03/30 05:57:01 gdamore Exp $");
/*
* Manages physical address maps.
@ -730,6 +730,7 @@ pmap_remove(pmap_t pmap, vaddr_t sva, vaddr_t eva)
pmap->pm_stats.wired_count--;
pmap->pm_stats.resident_count--;
pg = PHYS_TO_VM_PAGE(mips_tlbpfn_to_paddr(entry));
if (pg)
pmap_remove_pv(pmap, sva, pg);
if (MIPS_HAS_R4K_MMU)
/* See above about G bit */
@ -789,6 +790,7 @@ pmap_remove(pmap_t pmap, vaddr_t sva, vaddr_t eva)
pmap->pm_stats.wired_count--;
pmap->pm_stats.resident_count--;
pg = PHYS_TO_VM_PAGE(mips_tlbpfn_to_paddr(entry));
if (pg)
pmap_remove_pv(pmap, sva, pg);
pte->pt_entry = mips_pg_nv_bit();
/*