Module Name:    src
Committed By:   matt
Date:           Wed Jul 18 18:50:46 UTC 2012

Modified Files:
        src/sys/arch/powerpc/booke: e500_tlb.c

Log Message:
Don't assume 1:1 PA:VA mapping


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/powerpc/booke/e500_tlb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/powerpc/booke/e500_tlb.c
diff -u src/sys/arch/powerpc/booke/e500_tlb.c:1.9 src/sys/arch/powerpc/booke/e500_tlb.c:1.10
--- src/sys/arch/powerpc/booke/e500_tlb.c:1.9	Wed Jul 18 18:29:22 2012
+++ src/sys/arch/powerpc/booke/e500_tlb.c	Wed Jul 18 18:50:46 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: e500_tlb.c,v 1.9 2012/07/18 18:29:22 matt Exp $	*/
+/*	$NetBSD: e500_tlb.c,v 1.10 2012/07/18 18:50:46 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: e500_tlb.c,v 1.9 2012/07/18 18:29:22 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: e500_tlb.c,v 1.10 2012/07/18 18:50:46 matt Exp $");
 
 #include <sys/param.h>
 
@@ -722,7 +722,8 @@ e500_tlb_mapiodev(paddr_t pa, psize_t le
 	    && (prefetchable
 		|| (xtlb->e_tlb.tlb_pte & PTE_WIG) == (PTE_I|PTE_G))) {
 		xtlb->e_refcnt++;
-		return (void *) pa;
+		return (void *) (xtlb->e_tlb.tlb_va
+		    + pa - (xtlb->e_tlb.tlb_pte & PTE_RPN_MASK));
 	}
 	return NULL;
 }

Reply via email to