diff options
Diffstat (limited to 'arch/arm/kvm/mmu.c')
-rw-r--r-- | arch/arm/kvm/mmu.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c index 23360610aeac..b2a708be1407 100644 --- a/arch/arm/kvm/mmu.c +++ b/arch/arm/kvm/mmu.c | |||
@@ -1111,3 +1111,49 @@ out: | |||
1111 | free_hyp_pgds(); | 1111 | free_hyp_pgds(); |
1112 | return err; | 1112 | return err; |
1113 | } | 1113 | } |
1114 | |||
1115 | void kvm_arch_commit_memory_region(struct kvm *kvm, | ||
1116 | struct kvm_userspace_memory_region *mem, | ||
1117 | const struct kvm_memory_slot *old, | ||
1118 | enum kvm_mr_change change) | ||
1119 | { | ||
1120 | gpa_t gpa = old->base_gfn << PAGE_SHIFT; | ||
1121 | phys_addr_t size = old->npages << PAGE_SHIFT; | ||
1122 | if (change == KVM_MR_DELETE || change == KVM_MR_MOVE) { | ||
1123 | spin_lock(&kvm->mmu_lock); | ||
1124 | unmap_stage2_range(kvm, gpa, size); | ||
1125 | spin_unlock(&kvm->mmu_lock); | ||
1126 | } | ||
1127 | } | ||
1128 | |||
1129 | int kvm_arch_prepare_memory_region(struct kvm *kvm, | ||
1130 | struct kvm_memory_slot *memslot, | ||
1131 | struct kvm_userspace_memory_region *mem, | ||
1132 | enum kvm_mr_change change) | ||
1133 | { | ||
1134 | return 0; | ||
1135 | } | ||
1136 | |||
1137 | void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *free, | ||
1138 | struct kvm_memory_slot *dont) | ||
1139 | { | ||
1140 | } | ||
1141 | |||
1142 | int kvm_arch_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot, | ||
1143 | unsigned long npages) | ||
1144 | { | ||
1145 | return 0; | ||
1146 | } | ||
1147 | |||
1148 | void kvm_arch_memslots_updated(struct kvm *kvm) | ||
1149 | { | ||
1150 | } | ||
1151 | |||
1152 | void kvm_arch_flush_shadow_all(struct kvm *kvm) | ||
1153 | { | ||
1154 | } | ||
1155 | |||
1156 | void kvm_arch_flush_shadow_memslot(struct kvm *kvm, | ||
1157 | struct kvm_memory_slot *slot) | ||
1158 | { | ||
1159 | } | ||