diff options
author | Jungseung Lee <js07.lee@gmail.com> | 2014-11-28 20:51:49 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-12-03 11:00:04 -0500 |
commit | 802318743a449f74d3fc952ad7cdcbd3a44dcdc2 (patch) | |
tree | bdb843d4a5e0db7c24bb89e446d2553ac49987c9 | |
parent | 1d4d37159d013a4c54d785407dd8902f901d7bc5 (diff) |
ARM: 8236/1: mm: fix discard_old_kernel_data
L1_CACHE_BYTES could be larger value than real L1 cache line size.
In that case, discard_old_kernel_data() would omit to invalidate
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>
-rw-r--r-- | arch/arm/mm/copypage-v6.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index b9bcc9d79176..70423345da26 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c | |||
@@ -62,7 +62,7 @@ static void discard_old_kernel_data(void *kto) | |||
62 | __asm__("mcrr p15, 0, %1, %0, c6 @ 0xec401f06" | 62 | __asm__("mcrr p15, 0, %1, %0, c6 @ 0xec401f06" |
63 | : | 63 | : |
64 | : "r" (kto), | 64 | : "r" (kto), |
65 | "r" ((unsigned long)kto + PAGE_SIZE - L1_CACHE_BYTES) | 65 | "r" ((unsigned long)kto + PAGE_SIZE - 1) |
66 | : "cc"); | 66 | : "cc"); |
67 | } | 67 | } |
68 | 68 | ||