From 4f73cf46ab6f7040f4ace9ba581cf554b01fd6a4 Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Wed, 26 Oct 2022 10:32:15 +0000 Subject: [PATCH] ANDROID: KVM: arm64: Expose kvm_flush_dcache_to_poc() in module_ops Expose kvm_flush_dcache_to_poc() in the module_ops struct to allow CMOs from pKVM modules. Bug: 244543039 Bug: 244373730 Change-Id: I91d57a94effd2710d868591c6baf4a5672d149a4 Signed-off-by: Quentin Perret --- arch/arm64/include/asm/kvm_pkvm_module.h | 1 + arch/arm64/kvm/hyp/nvhe/modules.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/arch/arm64/include/asm/kvm_pkvm_module.h b/arch/arm64/include/asm/kvm_pkvm_module.h index af8491c1ccae..49f3b0ff2549 100644 --- a/arch/arm64/include/asm/kvm_pkvm_module.h +++ b/arch/arm64/include/asm/kvm_pkvm_module.h @@ -15,6 +15,7 @@ struct pkvm_module_ops { void (*putx64)(u64 num); void *(*fixmap_map)(phys_addr_t phys); void (*fixmap_unmap)(void); + void (*flush_dcache_to_poc)(void *addr, size_t size); }; struct pkvm_module_section { diff --git a/arch/arm64/kvm/hyp/nvhe/modules.c b/arch/arm64/kvm/hyp/nvhe/modules.c index d8e11922597a..c91488716557 100644 --- a/arch/arm64/kvm/hyp/nvhe/modules.c +++ b/arch/arm64/kvm/hyp/nvhe/modules.c @@ -9,6 +9,11 @@ #include #include +static void __kvm_flush_dcache_to_poc(void *addr, size_t size) +{ + kvm_flush_dcache_to_poc((unsigned long)addr, (unsigned long)size); +} + const struct pkvm_module_ops module_ops = { .create_private_mapping = __pkvm_create_private_mapping, .register_serial_driver = __pkvm_register_serial_driver, @@ -16,6 +21,7 @@ const struct pkvm_module_ops module_ops = { .putx64 = hyp_putx64, .fixmap_map = hyp_fixmap_map, .fixmap_unmap = hyp_fixmap_unmap, + .flush_dcache_to_poc = __kvm_flush_dcache_to_poc, }; int __pkvm_init_module(void *module_init)