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); |
