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-head mailing list