| From foo@baz Thu Dec 21 09:02:40 CET 2017 |
| From: "Herongguang (Stephen)" <herongguang.he@huawei.com> |
| Date: Mon, 27 Mar 2017 15:21:17 +0800 |
| Subject: KVM: pci-assign: do not map smm memory slot pages in vt-d page tables |
| |
| From: "Herongguang (Stephen)" <herongguang.he@huawei.com> |
| |
| |
| [ Upstream commit 0292e169b2d9c8377a168778f0b16eadb1f578fd ] |
| |
| or VM memory are not put thus leaked in kvm_iommu_unmap_memslots() when |
| destroy VM. |
| |
| This is consistent with current vfio implementation. |
| |
| Signed-off-by: herongguang <herongguang.he@huawei.com> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| virt/kvm/kvm_main.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/virt/kvm/kvm_main.c |
| +++ b/virt/kvm/kvm_main.c |
| @@ -1060,7 +1060,7 @@ int __kvm_set_memory_region(struct kvm * |
| * changes) is disallowed above, so any other attribute changes getting |
| * here can be skipped. |
| */ |
| - if ((change == KVM_MR_CREATE) || (change == KVM_MR_MOVE)) { |
| + if (as_id == 0 && (change == KVM_MR_CREATE || change == KVM_MR_MOVE)) { |
| r = kvm_iommu_map_pages(kvm, &new); |
| return r; |
| } |