diff options
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index c422c10cd1dd..210bf820385a 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -135,6 +135,11 @@ static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm); | |||
135 | static unsigned long long kvm_createvm_count; | 135 | static unsigned long long kvm_createvm_count; |
136 | static unsigned long long kvm_active_vms; | 136 | static unsigned long long kvm_active_vms; |
137 | 137 | ||
138 | __weak void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm, | ||
139 | unsigned long start, unsigned long end) | ||
140 | { | ||
141 | } | ||
142 | |||
138 | bool kvm_is_reserved_pfn(kvm_pfn_t pfn) | 143 | bool kvm_is_reserved_pfn(kvm_pfn_t pfn) |
139 | { | 144 | { |
140 | if (pfn_valid(pfn)) | 145 | if (pfn_valid(pfn)) |
@@ -360,6 +365,9 @@ static void kvm_mmu_notifier_invalidate_range_start(struct mmu_notifier *mn, | |||
360 | kvm_flush_remote_tlbs(kvm); | 365 | kvm_flush_remote_tlbs(kvm); |
361 | 366 | ||
362 | spin_unlock(&kvm->mmu_lock); | 367 | spin_unlock(&kvm->mmu_lock); |
368 | |||
369 | kvm_arch_mmu_notifier_invalidate_range(kvm, start, end); | ||
370 | |||
363 | srcu_read_unlock(&kvm->srcu, idx); | 371 | srcu_read_unlock(&kvm->srcu, idx); |
364 | } | 372 | } |
365 | 373 | ||