MIPS: remove aliasing alignment if HW has antialising support
authorLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Fri, 20 Nov 2015 01:38:21 +0000 (17:38 -0800)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 May 2016 12:02:16 +0000 (14:02 +0200)
MIPS hardware may have an antialising support and it works even
page size is small.

Setup a shared memory aliasing mask to page size if hardware has
an antialising support. Big shared memory mask forces a disruption
in page address assignment and that corrupts Android library memory
handling.

Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Cc: cernekee@gmail.com
Cc: paul.gortmaker@windriver.com
Cc: kumba@gentoo.org
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11516/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/c-r4k.c

index d73b304..ef7f925 100644 (file)
@@ -1721,7 +1721,7 @@ void r4k_cache_init(void)
         * This code supports virtually indexed processors and will be
         * unnecessarily inefficient on physically indexed processors.
         */
-       if (c->dcache.linesz)
+       if (c->dcache.linesz && cpu_has_dc_aliases)
                shm_align_mask = max_t( unsigned long,
                                        c->dcache.sets * c->dcache.linesz - 1,
                                        PAGE_SIZE - 1);