summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2002-01-06 06:03:00 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2002-01-06 06:03:00 +0000
commit15b2ac946094abab1577c44b1b2418930eff2693 (patch)
tree17a713e40c95cf76f8ff6ad103b394c751e0b48b
parentb09d348ee766f933bd11c133593fb79c4e2010e3 (diff)
That was no fix, that broke things. If the pte entry is currently found
in the po lists, it will NOT have the PTE_VALID bit set. Thus valid mappings could be ignored if enough mappings existed for that PTEG pair. This explains the bus_dma panics.
-rw-r--r--sys/arch/powerpc/powerpc/pmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/powerpc/powerpc/pmap.c b/sys/arch/powerpc/powerpc/pmap.c
index d80145eb13c..40b11085298 100644
--- a/sys/arch/powerpc/powerpc/pmap.c
+++ b/sys/arch/powerpc/powerpc/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.53 2002/01/06 04:04:48 drahn Exp $ */
+/* $OpenBSD: pmap.c,v 1.54 2002/01/06 06:02:59 drahn Exp $ */
/* $NetBSD: pmap.c,v 1.1 1996/09/30 16:34:52 ws Exp $ */
/*
@@ -1493,7 +1493,7 @@ pmap_extract(pm, va, pap)
int s = splimp();
boolean_t ret;
- if (!(ptp = pte_find(pm, va)) || (ptp->pte_hi & PTE_VALID) == 0) {
+ if (!(ptp = pte_find(pm, va))) {
/* return address 0 if not mapped??? */
ret = FALSE;
if (pm == pmap_kernel() && va < 0x80000000){