Re: [PATCH v1 03/13] arm64: Downgrade flush_icache_range to invalidate
From: Ard Biesheuvel <ardb@kernel.org>
Date: 2021-05-11 14:56:08
On Tue, 11 May 2021 at 16:43, Fuad Tabba [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Since __flush_dcache_area is called right before, invalidate_icache_range is sufficient in this case. No functional change intended. Reported-by: Catalin Marinas <catalin.marinas@arm.com> Reported-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/linux-arch/20200511110014.lb9PEahJ4hVOYrbwIb_qUHXyNy9KQzNFdb_I3YlzY6A@z/ Signed-off-by: Fuad Tabba <redacted> --- arch/arm64/kernel/machine_kexec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c index 90a335c74442..001ffbfc645b 100644 --- a/arch/arm64/kernel/machine_kexec.c +++ b/arch/arm64/kernel/machine_kexec.c@@ -70,8 +70,9 @@ int machine_kexec_post_load(struct kimage *kimage) /* Flush the reloc_code in preparation for its execution. */ __flush_dcache_area(reloc_code, arm64_relocate_new_kernel_size); - flush_icache_range((uintptr_t)reloc_code, (uintptr_t)reloc_code + - arm64_relocate_new_kernel_size); + invalidate_icache_range((uintptr_t)reloc_code, + (uintptr_t)reloc_code + + arm64_relocate_new_kernel_size);
So this is a clean to the PoC followed by a I-cache invalidate to the PoU, right? Perhaps we could improve the comment while at it (avoid 'flush', and mention that the code needs to be cleaned to the PoC and invalidated from the I-cache for execution with the MMU off and I-cache on)
return 0; } -- 2.31.1.607.g51e8a6a459-goog
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel