Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Mar 2016 07:26:38 +0000 (UTC)
From:      Wojciech Macek <wma@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r296828 - head/sys/arm64/arm64
Message-ID:  <201603140726.u2E7QcAY049918@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603140726.u2E7QcAY049918>