]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - arch/arm/include/asm/kvm_mmu.h
Merge tag 'clang-format-for-linus-v5.1-rc5' of git://github.com/ojeda/linux
[thirdparty/kernel/stable.git] / arch / arm / include / asm / kvm_mmu.h
index 3a875fc1b63ca3416c071afa9536262525915025..31de4ab930050cb6e7584fd45747b5e329fc6bfd 100644 (file)
@@ -381,6 +381,17 @@ static inline int kvm_read_guest_lock(struct kvm *kvm,
        return ret;
 }
 
+static inline int kvm_write_guest_lock(struct kvm *kvm, gpa_t gpa,
+                                      const void *data, unsigned long len)
+{
+       int srcu_idx = srcu_read_lock(&kvm->srcu);
+       int ret = kvm_write_guest(kvm, gpa, data, len);
+
+       srcu_read_unlock(&kvm->srcu, srcu_idx);
+
+       return ret;
+}
+
 static inline void *kvm_get_hyp_vector(void)
 {
        switch(read_cpuid_part()) {
@@ -421,9 +432,14 @@ static inline int hyp_map_aux_data(void)
 
 static inline void kvm_set_ipa_limit(void) {}
 
-static inline bool kvm_cpu_has_cnp(void)
+static __always_inline u64 kvm_get_vttbr(struct kvm *kvm)
 {
-       return false;
+       struct kvm_vmid *vmid = &kvm->arch.vmid;
+       u64 vmid_field, baddr;
+
+       baddr = kvm->arch.pgd_phys;
+       vmid_field = (u64)vmid->vmid << VTTBR_VMID_SHIFT;
+       return kvm_phys_to_vttbr(baddr) | vmid_field;
 }
 
 #endif /* !__ASSEMBLY__ */