svn commit: r296828 - head/sys/arm64/arm64
Wojciech Macek
wma at FreeBSD.org
Mon Mar 14 07:26:40 UTC 2016
Author: wma
Date: Mon Mar 14 07:26:38 2016
New Revision: 296828
URL: https://svnweb.freebsd.org/changeset/base/296828
Log:
pmap arm64: fixing pmap_invalidate_range
It seems that if range within one page is given this page will not be
invalidated at all. Clean it up.
Submitted by: Dominik Ermel <der at semihalf.com>
Obtained from: Semihalf
Sponsored by: Cavium
Reviewed by: wma, zbb
Approved by: cognet (mentor)
Differential Revision: https://reviews.freebsd.org/D5569
Modified:
head/sys/arm64/arm64/pmap.c
Modified: head/sys/arm64/arm64/pmap.c
==============================================================================
--- head/sys/arm64/arm64/pmap.c Mon Mar 14 07:24:08 2016 (r296827)
+++ head/sys/arm64/arm64/pmap.c Mon Mar 14 07:26:38 2016 (r296828)
@@ -772,12 +772,10 @@ pmap_invalidate_range(pmap_t pmap, vm_of
vm_offset_t addr;
sched_pin();
- sva >>= PAGE_SHIFT;
- eva >>= PAGE_SHIFT;
__asm __volatile("dsb sy");
- for (addr = sva; addr < eva; addr++) {
+ for (addr = sva; addr < eva; addr += PAGE_SIZE) {
__asm __volatile(
- "tlbi vaae1is, %0" : : "r"(addr));
+ "tlbi vaae1is, %0" : : "r"(addr >> PAGE_SHIFT));
}
__asm __volatile(
"dsb sy \n"
More information about the svn-src-all
mailing list