ARC: mm: retire support for aliasing VIPT D$
[linux-2.6-microblaze.git] / arch / arc / mm / mmap.c
index fce5fa2..3c1c7ae 100644 (file)
 
 #include <asm/cacheflush.h>
 
-#define COLOUR_ALIGN(addr, pgoff)                      \
-       ((((addr) + SHMLBA - 1) & ~(SHMLBA - 1)) +      \
-        (((pgoff) << PAGE_SHIFT) & (SHMLBA - 1)))
-
 /*
  * Ensure that shared mappings are correctly aligned to
  * avoid aliasing issues with VIPT caches.
@@ -31,21 +27,13 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
 {
        struct mm_struct *mm = current->mm;
        struct vm_area_struct *vma;
-       int do_align = 0;
-       int aliasing = cache_is_vipt_aliasing();
        struct vm_unmapped_area_info info;
 
-       /*
-        * We only need to do colour alignment if D cache aliases.
-        */
-       if (aliasing)
-               do_align = filp || (flags & MAP_SHARED);
-
        /*
         * We enforce the MAP_FIXED case.
         */
        if (flags & MAP_FIXED) {
-               if (aliasing && flags & MAP_SHARED &&
+               if (flags & MAP_SHARED &&
                    (addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))
                        return -EINVAL;
                return addr;
@@ -55,10 +43,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
                return -ENOMEM;
 
        if (addr) {
-               if (do_align)
-                       addr = COLOUR_ALIGN(addr, pgoff);
-               else
-                       addr = PAGE_ALIGN(addr);
+               addr = PAGE_ALIGN(addr);
 
                vma = find_vma(mm, addr);
                if (TASK_SIZE - len >= addr &&
@@ -70,7 +55,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
        info.length = len;
        info.low_limit = mm->mmap_base;
        info.high_limit = TASK_SIZE;
-       info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
+       info.align_mask = 0;
        info.align_offset = pgoff << PAGE_SHIFT;
        return vm_unmapped_area(&info);
 }