ARM: 8237/1: fix flush_pfn_alias
authorJungseung Lee <js07.lee@gmail.com>
Sat, 29 Nov 2014 01:54:27 +0000 (02:54 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 3 Dec 2014 16:00:04 +0000 (16:00 +0000)
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>
arch/arm/mm/flush.c

index 265b836b3bd1704d0265eebafd33d4f0d1e7ea45..34b66af516ea9ea83c8afb9ac7439467d80f9a3a 100644 (file)
@@ -33,7 +33,7 @@ static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
        asm(    "mcrr   p15, 0, %1, %0, c14\n"
        "       mcr     p15, 0, %2, c7, c10, 4"
            :
-           : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero)
+           : "r" (to), "r" (to + PAGE_SIZE - 1), "r" (zero)
            : "cc");
 }
 
This page took 0.025739 seconds and 5 git commands to generate.