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)