KVM: arm64: restore map_donated_memory and teardown_donated_memory until sve_guest uses the allocator Signed-off-by: Fuad Tabba <tabba@google.com>
diff --git a/arch/arm64/kvm/hyp/nvhe/pkvm.c b/arch/arm64/kvm/hyp/nvhe/pkvm.c index 5141514..078232b 100644 --- a/arch/arm64/kvm/hyp/nvhe/pkvm.c +++ b/arch/arm64/kvm/hyp/nvhe/pkvm.c
@@ -293,6 +293,16 @@ static void *map_donated_memory_noclear(unsigned long host_va, size_t size) return va; } +static void *map_donated_memory(unsigned long host_va, size_t size) +{ + void *va = map_donated_memory_noclear(host_va, size); + + if (va) + memset(va, 0, size); + + return va; +} + static void __unmap_donated_memory(void *va, size_t size) { WARN_ON(__pkvm_hyp_donate_host(hyp_virt_to_pfn(va), @@ -316,6 +326,20 @@ static void unmap_donated_memory_noclear(void *va, size_t size) __unmap_donated_memory(va, size); } +static void +teardown_donated_memory(struct kvm_hyp_memcache *mc, void *addr, size_t size) +{ + void *start; + + size = PAGE_ALIGN(size); + memset(addr, 0, size); + + for (start = addr; start < addr + size; start += PAGE_SIZE) + push_hyp_memcache(mc, start, hyp_virt_to_phys); + + unmap_donated_memory_noclear(addr, size); +} + /* * Return the hyp vm structure corresponding to the handle. */