Merge tag 'v4.4.55' into linux-linaro-lsk-v4.4
[firefly-linux-kernel-4.4.55.git] / arch / arm / include / asm / kvm_mmu.h
index 405aa18833073b88b52103363b54d534d9c69263..ebf866a3a8c88f3bc19b66c8873d4e6b0312f2f9 100644 (file)
@@ -66,6 +66,7 @@ void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu);
 phys_addr_t kvm_mmu_get_httbr(void);
 phys_addr_t kvm_mmu_get_boot_httbr(void);
 phys_addr_t kvm_get_idmap_vector(void);
+phys_addr_t kvm_get_idmap_start(void);
 int kvm_mmu_init(void);
 void kvm_clear_hyp_idmap(void);
 
@@ -204,18 +205,12 @@ static inline void __coherent_cache_guest_page(struct kvm_vcpu *vcpu, pfn_t pfn,
         * and iterate over the range.
         */
 
-       bool need_flush = !vcpu_has_cache_enabled(vcpu) || ipa_uncached;
-
        VM_BUG_ON(size & ~PAGE_MASK);
 
-       if (!need_flush && !icache_is_pipt())
-               goto vipt_cache;
-
        while (size) {
                void *va = kmap_atomic_pfn(pfn);
 
-               if (need_flush)
-                       kvm_flush_dcache_to_poc(va, PAGE_SIZE);
+               kvm_flush_dcache_to_poc(va, PAGE_SIZE);
 
                if (icache_is_pipt())
                        __cpuc_coherent_user_range((unsigned long)va,
@@ -227,7 +222,6 @@ static inline void __coherent_cache_guest_page(struct kvm_vcpu *vcpu, pfn_t pfn,
                kunmap_atomic(va);
        }
 
-vipt_cache:
        if (!icache_is_pipt() && !icache_is_vivt_asid_tagged()) {
                /* any kind of VIPT cache */
                __flush_icache_all();
@@ -279,6 +273,11 @@ static inline void __kvm_extend_hypmap(pgd_t *boot_hyp_pgd,
                                       pgd_t *merged_hyp_pgd,
                                       unsigned long hyp_idmap_start) { }
 
+static inline unsigned int kvm_get_vmid_bits(void)
+{
+       return 8;
+}
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* __ARM_KVM_MMU_H__ */