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 <[email protected]>
  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"
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to