diff options
author | Ingo Molnar <mingo@kernel.org> | 2024-01-08 12:57:28 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2024-01-08 12:57:28 +0100 |
commit | cdb3033e191fd03da2d7da23b9cd448dfa180a8e (patch) | |
tree | e863d55e63bea2bc9c18652e0d7291fec5e5cd23 /arch/arc/mm/mmap.c | |
parent | fbb66ce0b1d670c72def736a13ac9176b860df4e (diff) | |
parent | f60a631ab9ed5df15e446269ea515f2b8948ba0c (diff) | |
download | linux-cdb3033e191fd03da2d7da23b9cd448dfa180a8e.tar.gz linux-cdb3033e191fd03da2d7da23b9cd448dfa180a8e.tar.bz2 linux-cdb3033e191fd03da2d7da23b9cd448dfa180a8e.zip |
Merge branch 'sched/urgent' into sched/core, to pick up pending v6.7 fixes for the v6.8 merge window
This fix didn't make it upstream in time, pick it up
for the v6.8 merge window.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/arc/mm/mmap.c')
-rw-r--r-- | arch/arc/mm/mmap.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/arch/arc/mm/mmap.c b/arch/arc/mm/mmap.c index fce5fa2b4f52..3c1c7ae73292 100644 --- a/arch/arc/mm/mmap.c +++ b/arch/arc/mm/mmap.c @@ -14,10 +14,6 @@ #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); } |