Author: cognet
Date: Wed Nov 21 01:38:40 2012
New Revision: 243359
URL: http://svnweb.freebsd.org/changeset/base/243359

Log:
  Make sure the address starts on a cache line boundary.

Modified:
  head/sys/arm/arm/pl310.c

Modified: head/sys/arm/arm/pl310.c
==============================================================================
--- head/sys/arm/arm/pl310.c    Wed Nov 21 01:01:19 2012        (r243358)
+++ head/sys/arm/arm/pl310.c    Wed Nov 21 01:38:40 2012        (r243359)
@@ -180,9 +180,13 @@ static void
 pl310_wbinv_range(vm_paddr_t start, vm_size_t size)
 {
        
+       if (start & g_l2cache_align_mask) {
+               size += start & g_l2cache_align_mask;
+               start &= ~g_l2cache_align_mask;
+       }
        if (size & g_l2cache_align_mask) {
                size &= ~g_l2cache_align_mask;
-               size += g_l2cache_line_size;
+               size += g_l2cache_line_size;
        }
 #if 1
 
@@ -217,6 +221,10 @@ static void
 pl310_wb_range(vm_paddr_t start, vm_size_t size)
 {
        
+       if (start & g_l2cache_align_mask) {
+               size += start & g_l2cache_align_mask;
+               start &= ~g_l2cache_align_mask;
+       }
        if (size & g_l2cache_align_mask) {
                size &= ~g_l2cache_align_mask;
                size += g_l2cache_line_size;
@@ -235,6 +243,10 @@ static void
 pl310_inv_range(vm_paddr_t start, vm_size_t size)
 {
 
+       if (start & g_l2cache_align_mask) {
+               size += start & g_l2cache_align_mask;
+               start &= ~g_l2cache_align_mask;
+       }
        if (size & g_l2cache_align_mask) {
                size &= ~g_l2cache_align_mask;
                size += g_l2cache_line_size;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to