diff options
-rw-r--r-- | virt/kvm/kvm_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index e41d39d6b0ef..fd9cc79092cb 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -1020,7 +1020,10 @@ int __kvm_set_memory_region(struct kvm *kvm, | |||
1020 | goto out_free; | 1020 | goto out_free; |
1021 | } | 1021 | } |
1022 | 1022 | ||
1023 | kvm_free_physmem_slot(&old, &new); | 1023 | kvm_free_physmem_slot(&old, npages ? &new : NULL); |
1024 | /* Slot deletion case: we have to update the current slot */ | ||
1025 | if (!npages) | ||
1026 | *memslot = old; | ||
1024 | #ifdef CONFIG_DMAR | 1027 | #ifdef CONFIG_DMAR |
1025 | /* map the pages in iommu page table */ | 1028 | /* map the pages in iommu page table */ |
1026 | r = kvm_iommu_map_pages(kvm, base_gfn, npages); | 1029 | r = kvm_iommu_map_pages(kvm, base_gfn, npages); |