kvm_s2_mmu
struct kvm_s2_mmu;
extern void __kvm_flush_cpu_context(struct kvm_s2_mmu *mmu);
extern void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu, phys_addr_t ipa,
extern void __kvm_tlb_flush_vmid_ipa_nsh(struct kvm_s2_mmu *mmu,
extern void __kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
extern void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu);
extern int __kvm_tlbi_s1e2(struct kvm_s2_mmu *mmu, u64 va, u64 sys_encoding);
struct kvm_s2_mmu mmu;
struct kvm_s2_mmu *nested_mmus;
struct kvm_s2_mmu *hw_mmu;
void kvm_stage2_unmap_range(struct kvm_s2_mmu *mmu, phys_addr_t start,
void kvm_stage2_flush_range(struct kvm_s2_mmu *mmu, phys_addr_t addr, phys_addr_t end);
void kvm_stage2_wp_range(struct kvm_s2_mmu *mmu, phys_addr_t addr, phys_addr_t end);
int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long type);
void kvm_free_stage2_pgd(struct kvm_s2_mmu *mmu);
static __always_inline u64 kvm_get_vttbr(struct kvm_s2_mmu *mmu)
static __always_inline void __load_stage2(struct kvm_s2_mmu *mmu,
static inline struct kvm *kvm_s2_mmu_to_kvm(struct kvm_s2_mmu *mmu)
static inline bool kvm_s2_mmu_valid(struct kvm_s2_mmu *mmu)
static inline bool kvm_is_nested_s2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu)
unsigned long compute_tlb_inval_range(struct kvm_s2_mmu *mmu, u64 val);
extern void kvm_init_nested_s2_mmu(struct kvm_s2_mmu *mmu);
extern struct kvm_s2_mmu *lookup_s2_mmu(struct kvm_vcpu *vcpu);
void (*)(struct kvm_s2_mmu *,
struct kvm_s2_mmu *mmu;
int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
static inline int kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
void kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
int pkvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *mmu;
struct kvm_s2_mmu *mmu;
DECLARE_REG(struct kvm_s2_mmu *, mmu, host_ctxt, 1);
DECLARE_REG(struct kvm_s2_mmu *, mmu, host_ctxt, 1);
DECLARE_REG(struct kvm_s2_mmu *, mmu, host_ctxt, 1);
DECLARE_REG(struct kvm_s2_mmu *, mmu, host_ctxt, 1);
DECLARE_REG(struct kvm_s2_mmu *, mmu, host_ctxt, 1);
struct kvm_s2_mmu *mmu = &host_mmu.arch.mmu;
struct kvm_s2_mmu *mmu = &vm->kvm.arch.mmu;
struct kvm_s2_mmu *mmu = &host_mmu.arch.mmu;
struct kvm_s2_mmu *mmu = &hyp_vm->kvm.arch.mmu;
struct kvm_s2_mmu *mmu;
struct kvm_s2_mmu *mmu = cxt->mmu;
struct kvm_s2_mmu *mmu;
void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu,
void __kvm_tlb_flush_vmid_ipa_nsh(struct kvm_s2_mmu *mmu,
static void enter_vmid_context(struct kvm_s2_mmu *mmu,
void __kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *host_s2_mmu = &host_mmu.arch.mmu;
void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu)
void __kvm_flush_cpu_context(struct kvm_s2_mmu *mmu)
struct kvm_s2_mmu *mmu = pgt->mmu;
struct kvm_s2_mmu *mmu;
mmu = container_of(mc, struct kvm_s2_mmu, split_page_cache);
int __kvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *mmu;
void kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *mmu)
struct kvm_s2_mmu *mmu,
void __kvm_tlb_flush_vmid_ipa_nsh(struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *mmu;
void __kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu)
static void enter_vmid_context(struct kvm_s2_mmu *mmu,
void __kvm_flush_cpu_context(struct kvm_s2_mmu *mmu)
int __kvm_tlbi_s1e2(struct kvm_s2_mmu *mmu, u64 va, u64 sys_encoding)
void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu,
void kvm_free_stage2_pgd(struct kvm_s2_mmu *mmu)
struct kvm_s2_mmu *mmu = &kvm->arch.mmu;
void kvm_stage2_wp_range(struct kvm_s2_mmu *mmu, phys_addr_t addr, phys_addr_t end)
struct kvm_s2_mmu *mmu;
static void __unmap_stage2_range(struct kvm_s2_mmu *mmu, phys_addr_t start, u64 size,
void kvm_stage2_unmap_range(struct kvm_s2_mmu *mmu, phys_addr_t start,
void kvm_stage2_flush_range(struct kvm_s2_mmu *mmu, phys_addr_t addr, phys_addr_t end)
static int stage2_apply_range(struct kvm_s2_mmu *mmu, phys_addr_t addr,
static int kvm_init_ipa_range(struct kvm_s2_mmu *mmu, unsigned long type)
int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long type)
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
struct kvm_s2_mmu *mmu = vcpu->arch.hw_mmu;
static u8 get_guest_mapping_ttl(struct kvm_s2_mmu *mmu, u64 addr)
static int init_nested_s2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu)
unsigned long compute_tlb_inval_range(struct kvm_s2_mmu *mmu, u64 val)
void (*tlbi_callback)(struct kvm_s2_mmu *,
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
struct kvm_s2_mmu *lookup_s2_mmu(struct kvm_vcpu *vcpu)
struct kvm_s2_mmu *mmu = &kvm->arch.nested_mmus[i];
static struct kvm_s2_mmu *get_s2_mmu_nested(struct kvm_vcpu *vcpu)
struct kvm_s2_mmu *tmp;
struct kvm_s2_mmu *s2_mmu;
void kvm_init_nested_s2_mmu(struct kvm_s2_mmu *mmu)
int pkvm_pgtable_stage2_init(struct kvm_pgtable *pgt, struct kvm_s2_mmu *mmu,
struct kvm_s2_mmu *mmu = &kvm->arch.mmu;
struct kvm_s2_mmu *mmu = &kvm->arch.mmu;
static void s2_mmu_unmap_range(struct kvm_s2_mmu *mmu,
static void s2_mmu_unmap_ipa(struct kvm_s2_mmu *mmu,
static void s2_mmu_tlbi_s1e1(struct kvm_s2_mmu *mmu,