Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 8237/1: fix flush_pfn_alias

L1_CACHE_BYTES could be larger than real L1 cache line size.
In that case, flush_pfn_alias() would omit to flush last bytes
as much as L1_CACHE_BYTES - real cache line size.

So fix end address to "to + PAGE_SIZE - 1". The bottom bits of the address
is LINELEN. that is ignored by mcrr.

Signed-off-by: Jungseung Lee <js07.lee@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Jungseung Lee and committed by
Russell King
12e669b4 80231874

+1 -1
+1 -1
arch/arm/mm/flush.c
··· 33 33 asm( "mcrr p15, 0, %1, %0, c14\n" 34 34 " mcr p15, 0, %2, c7, c10, 4" 35 35 : 36 - : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) 36 + : "r" (to), "r" (to + PAGE_SIZE - 1), "r" (zero) 37 37 : "cc"); 38 38 } 39 39