Thread (32 messages) 32 messages, 5 authors, 2021-05-12

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help