mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-03 17:51:23 +00:00

With nVHE, the host currently creates all stage 1 hypervisor mappings at EL1 during boot, installs them at EL2, and extends them as required (e.g. when creating a new VM). But in a world where the host is no longer trusted, it cannot have full control over the code mapped in the hypervisor. In preparation for enabling the hypervisor to create its own stage 1 mappings during boot, introduce an early page allocator, with minimal functionality. This allocator is designed to be used only during early bootstrap of the hyp code when memory protection is enabled, which will then switch to using a full-fledged page allocator after init. Acked-by: Will Deacon <will@kernel.org> Signed-off-by: Quentin Perret <qperret@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20210319100146.1149909-11-qperret@google.com
15 lines
437 B
C
15 lines
437 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
#ifndef __KVM_HYP_EARLY_ALLOC_H
|
|
#define __KVM_HYP_EARLY_ALLOC_H
|
|
|
|
#include <asm/kvm_pgtable.h>
|
|
|
|
void hyp_early_alloc_init(void *virt, unsigned long size);
|
|
unsigned long hyp_early_alloc_nr_used_pages(void);
|
|
void *hyp_early_alloc_page(void *arg);
|
|
void *hyp_early_alloc_contig(unsigned int nr_pages);
|
|
|
|
extern struct kvm_pgtable_mm_ops hyp_early_alloc_mm_ops;
|
|
|
|
#endif /* __KVM_HYP_EARLY_ALLOC_H */
|