From 796b246902a32d5bd76ba0f6f69ec2f0d521d12d Mon Sep 17 00:00:00 2001 From: Sergiu Moga Date: Wed, 16 Aug 2023 11:56:15 +0300 Subject: [PATCH] plat/kvm/arm: Use length when clean/invalidating cache in `KVM` entry Fix second argument of [clean_and_]invalidate_dcache_range in `KVM` entry to use the length of the range instead of the address of the end of the range. Signed-off-by: Sergiu Moga Reviewed-by: Michalis Pappas Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Closes: #1056 --- plat/kvm/arm/efi_post.c | 2 +- plat/kvm/arm/entry64.S | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plat/kvm/arm/efi_post.c b/plat/kvm/arm/efi_post.c index e28beba0a..37cc8e76d 100644 --- a/plat/kvm/arm/efi_post.c +++ b/plat/kvm/arm/efi_post.c @@ -25,7 +25,7 @@ void __noreturn uk_efi_jmp_to_kern(void) ukplat_lcpu_disable_irq(); /* Invalidate the image from the data cache */ - clean_and_invalidate_dcache_range(__BASE_ADDR, __END); + clean_and_invalidate_dcache_range(__BASE_ADDR, __END - __BASE_ADDR); SYSREG_WRITE64(sctlr_el1, SCTLR_SET_BITS); SYSREG_WRITE64(contextidr_el1, 0); diff --git a/plat/kvm/arm/entry64.S b/plat/kvm/arm/entry64.S index f9bb7a3d7..ea18ae56d 100644 --- a/plat/kvm/arm/entry64.S +++ b/plat/kvm/arm/entry64.S @@ -83,6 +83,7 @@ ENTRY(_libkvmplat_entry) ur_ldr x0, _start_ram_addr ur_ldr x1, _end + sub x1, x1, x0 bl clean_and_invalidate_dcache_range /* Disable the MMU and D-Cache. */ @@ -97,6 +98,7 @@ ENTRY(_libkvmplat_entry) 0: ur_ldr x0, _start_ram_addr ur_ldr x1, _end + sub x1, x1, x0 bl invalidate_dcache_range #endif /* CONFIG_LIBUKRELOC */ 1: -- 2.39.5