>From 682af63ae034814d7ed1be8a7e4c6cee3d8b26c1 Mon Sep 17 00:00:00 2001 From: Weidong Han <[EMAIL PROTECTED]> Date: Mon, 23 Jun 2008 23:30:31 +0800 Subject: [PATCH] Use intel_iommu_domain to replace domain
"domain" is too generic. Signed-off-by: Weidong Han <[EMAIL PROTECTED]> --- arch/x86/kvm/vtd.c | 30 +++++++++++++++++------------- arch/x86/kvm/x86.c | 2 +- include/asm-x86/kvm_host.h | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/arch/x86/kvm/vtd.c b/arch/x86/kvm/vtd.c index 7bbd353..4387c25 100644 --- a/arch/x86/kvm/vtd.c +++ b/arch/x86/kvm/vtd.c @@ -34,7 +34,7 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct page *page; int i, rc; - if (!kvm->arch.domain) + if (!kvm->arch.intel_iommu_domain) return -EFAULT; printk(KERN_DEBUG "kvm_iommu_map_page: gpa = %lx\n", @@ -47,7 +47,8 @@ int kvm_iommu_map_pages(struct kvm *kvm, for (i = 0; i < npages; i++) { pfn = gfn_to_pfn(kvm, gfn); if (pfn_valid(pfn)) { - rc = kvm_intel_iommu_page_mapping(kvm->arch.domain, + rc = kvm_intel_iommu_page_mapping( + kvm->arch.intel_iommu_domain, gfn << PAGE_SHIFT, pfn << PAGE_SHIFT, PAGE_SIZE, DMA_PTE_READ | DMA_PTE_WRITE); if (rc) { @@ -93,24 +94,26 @@ int kvm_iommu_map_guest(struct kvm *kvm, (pdev->devfn == pci_pt_dev->host.devfn)) goto found; } - if (kvm->arch.domain) { - kvm_intel_iommu_domain_exit(kvm->arch.domain); - kvm->arch.domain = NULL; + if (kvm->arch.intel_iommu_domain) { + kvm_intel_iommu_domain_exit(kvm->arch.intel_iommu_domain); + kvm->arch.intel_iommu_domain = NULL; } return -ENODEV; found: - kvm->arch.domain = kvm_intel_iommu_domain_alloc(pdev); - if (kvm->arch.domain == NULL) + kvm->arch.intel_iommu_domain = kvm_intel_iommu_domain_alloc(pdev); + if (kvm->arch.intel_iommu_domain == NULL) printk(KERN_ERR "kvm_iommu_map_guest: domain == NULL\n"); else - printk("kvm_iommu_map_guest: domain = %p\n", kvm->arch.domain); + printk("kvm_iommu_map_guest: domain = %p\n", + kvm->arch.intel_iommu_domain); if (kvm_iommu_map_memslots(kvm)) { kvm_iommu_unmap_memslots(kvm); return -EFAULT; } - if (kvm_intel_iommu_context_mapping(kvm->arch.domain, pdev)) { + if (kvm_intel_iommu_context_mapping( + kvm->arch.intel_iommu_domain, pdev)) { printk(KERN_ERR "Domain context map for %s failed", pci_name(pdev)); return -EFAULT; @@ -126,7 +129,7 @@ static int kvm_iommu_put_pages(struct kvm *kvm, struct page *page; int i; - if (!kvm->arch.domain) + if (!kvm->arch.intel_iommu_domain) return -EFAULT; printk(KERN_DEBUG "kvm_iommu_put_pages: gpa = %lx\n", @@ -161,7 +164,7 @@ int kvm_iommu_unmap_guest(struct kvm *kvm) struct kvm_pci_pt_dev_list *entry; struct pci_dev *pdev = NULL; - if (!kvm->arch.domain) + if (!kvm->arch.intel_iommu_domain) return 0; list_for_each_entry(entry, &kvm->arch.pci_pt_dev_head, list) { @@ -183,11 +186,12 @@ found: } /* detach kvm dmar domain */ - kvm_intel_iommu_detach_dev(kvm->arch.domain, + kvm_intel_iommu_detach_dev( + kvm->arch.intel_iommu_domain, pdev->bus->number, pdev->devfn); } kvm_iommu_unmap_memslots(kvm); - kvm_intel_iommu_domain_exit(kvm->arch.domain); + kvm_intel_iommu_domain_exit(kvm->arch.intel_iommu_domain); return 0; } EXPORT_SYMBOL_GPL(kvm_iommu_unmap_guest); diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 20a46fe..cdfbda6 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -382,7 +382,7 @@ static void kvm_free_pci_passthrough(struct kvm *kvm) write_unlock_irqrestore(&kvm_pci_pt_lock, flags); if (kvm_intel_iommu_found()) - kvm->arch.domain = NULL; + kvm->arch.intel_iommu_domain = NULL; } unsigned long segment_base(u16 selector) diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h index 9159ad3..ab9581a 100644 --- a/include/asm-x86/kvm_host.h +++ b/include/asm-x86/kvm_host.h @@ -348,7 +348,7 @@ struct kvm_arch{ */ struct list_head active_mmu_pages; struct list_head pci_pt_dev_head; - struct dmar_domain *domain; + struct dmar_domain *intel_iommu_domain; struct kvm_pic *vpic; struct kvm_ioapic *vioapic; struct kvm_pit *vpit; -- 1.5.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html