summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2003-04-06 15:14:24 +0000
committerjake <jake@FreeBSD.org>2003-04-06 15:14:24 +0000
commitee3b0b9ec848cce0e51220863a0214bfccc06fee (patch)
treefb74e9e657be4e83aec37a2554175b53c1fdcab7
parentf642da1f1418c75d39f5eb48266d0880b3b9ae28 (diff)
downloadFreeBSD-src-ee3b0b9ec848cce0e51220863a0214bfccc06fee.zip
FreeBSD-src-ee3b0b9ec848cce0e51220863a0214bfccc06fee.tar.gz
Ignore attempts to pmap_kremove or pmap_qremove pages which do not have
a valid mapping. This is bug for bug compatible with other platforms.
-rw-r--r--sys/sparc64/sparc64/pmap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 202c638..1eb6be7 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -892,6 +892,8 @@ pmap_kremove(vm_offset_t va)
tp = tsb_kvtotte(va);
CTR3(KTR_PMAP, "pmap_kremove: va=%#lx tp=%p data=%#lx", va, tp,
tp->tte_data);
+ if ((tp->tte_data & TD_V) == 0)
+ return;
m = PHYS_TO_VM_PAGE(TTE_GET_PA(tp));
TAILQ_REMOVE(&m->md.tte_list, tp, tte_link);
pmap_cache_remove(m, va);
OpenPOWER on IntegriCloud