svn commit: r270936 - projects/arm64/sys/arm64/arm64
Andrew Turner
andrew at FreeBSD.org
Mon Sep 1 18:25:35 UTC 2014
Author: andrew
Date: Mon Sep 1 18:25:34 2014
New Revision: 270936
URL: http://svnweb.freebsd.org/changeset/base/270936
Log:
Fix pmap_invalidate_page and pmap_invalidate_range, the addresses need
to be be shifted to get them in the correct location in the register.
Modified:
projects/arm64/sys/arm64/arm64/pmap.c
Modified: projects/arm64/sys/arm64/arm64/pmap.c
==============================================================================
--- projects/arm64/sys/arm64/arm64/pmap.c Mon Sep 1 16:51:57 2014 (r270935)
+++ projects/arm64/sys/arm64/arm64/pmap.c Mon Sep 1 18:25:34 2014 (r270936)
@@ -1484,10 +1484,10 @@ pmap_invalidate_page(pmap_t pmap, vm_off
__asm __volatile(
"dsb sy \n"
- "tlbi vae1, %0 \n"
+ "tlbi vaae1, %0 \n"
"dsb sy \n"
"isb \n"
- : : "r"(va));
+ : : "r"(va >> PAGE_SHIFT));
}
PMAP_INLINE void
@@ -1496,10 +1496,12 @@ pmap_invalidate_range(pmap_t pmap, vm_of
vm_offset_t addr;
if (pmap == kernel_pmap) {
+ sva >>= PAGE_SHIFT;
+ eva >>= PAGE_SHIFT;
__asm __volatile("dsb sy");
- for (addr = sva; addr < eva; addr += PAGE_SIZE) {
+ for (addr = sva; addr < eva; addr++) {
__asm __volatile(
- "tlbi vae1, %0" : : "r"(addr));
+ "tlbi vaae1, %0" : : "r"(addr));
}
__asm __volatile(
"dsb sy \n"
More information about the svn-src-projects
mailing list