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.
*/