Loading arch/x86/kvm/vtd.c +11 −18 Original line number Diff line number Diff line Loading @@ -36,23 +36,21 @@ int kvm_iommu_map_pages(struct kvm *kvm, { gfn_t gfn = base_gfn; pfn_t pfn; int i, r; int i, r = 0; struct dmar_domain *domain = kvm->arch.intel_iommu_domain; /* check if iommu exists and in use */ if (!domain) return 0; r = -EINVAL; for (i = 0; i < npages; i++) { /* check if already mapped */ pfn = (pfn_t)intel_iommu_iova_to_pfn(domain, gfn_to_gpa(gfn)); if (pfn && !is_mmio_pfn(pfn)) if (pfn) continue; pfn = gfn_to_pfn(kvm, gfn); if (!is_mmio_pfn(pfn)) { r = intel_iommu_page_mapping(domain, gfn_to_gpa(gfn), pfn_to_hpa(pfn), Loading @@ -60,15 +58,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, DMA_PTE_READ | DMA_PTE_WRITE); if (r) { printk(KERN_DEBUG "kvm_iommu_map_pages:" printk(KERN_ERR "kvm_iommu_map_pages:" "iommu failed to map pfn=%lx\n", pfn); goto unmap_pages; } } else { printk(KERN_DEBUG "kvm_iommu_map_page:" "invalid pfn=%lx\n", pfn); goto unmap_pages; } gfn++; } return 0; Loading include/asm-x86/kvm_host.h +0 −2 Original line number Diff line number Diff line Loading @@ -502,8 +502,6 @@ int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa, int kvm_pv_mmu_op(struct kvm_vcpu *vcpu, unsigned long bytes, gpa_t addr, unsigned long *ret); int is_mmio_pfn(pfn_t pfn); extern bool tdp_enabled; enum emulation_result { Loading virt/kvm/kvm_main.c +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ static inline int valid_vcpu(int n) return likely(n >= 0 && n < KVM_MAX_VCPUS); } inline int is_mmio_pfn(pfn_t pfn) static inline int is_mmio_pfn(pfn_t pfn) { if (pfn_valid(pfn)) return PageReserved(pfn_to_page(pfn)); Loading Loading
arch/x86/kvm/vtd.c +11 −18 Original line number Diff line number Diff line Loading @@ -36,23 +36,21 @@ int kvm_iommu_map_pages(struct kvm *kvm, { gfn_t gfn = base_gfn; pfn_t pfn; int i, r; int i, r = 0; struct dmar_domain *domain = kvm->arch.intel_iommu_domain; /* check if iommu exists and in use */ if (!domain) return 0; r = -EINVAL; for (i = 0; i < npages; i++) { /* check if already mapped */ pfn = (pfn_t)intel_iommu_iova_to_pfn(domain, gfn_to_gpa(gfn)); if (pfn && !is_mmio_pfn(pfn)) if (pfn) continue; pfn = gfn_to_pfn(kvm, gfn); if (!is_mmio_pfn(pfn)) { r = intel_iommu_page_mapping(domain, gfn_to_gpa(gfn), pfn_to_hpa(pfn), Loading @@ -60,15 +58,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, DMA_PTE_READ | DMA_PTE_WRITE); if (r) { printk(KERN_DEBUG "kvm_iommu_map_pages:" printk(KERN_ERR "kvm_iommu_map_pages:" "iommu failed to map pfn=%lx\n", pfn); goto unmap_pages; } } else { printk(KERN_DEBUG "kvm_iommu_map_page:" "invalid pfn=%lx\n", pfn); goto unmap_pages; } gfn++; } return 0; Loading
include/asm-x86/kvm_host.h +0 −2 Original line number Diff line number Diff line Loading @@ -502,8 +502,6 @@ int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa, int kvm_pv_mmu_op(struct kvm_vcpu *vcpu, unsigned long bytes, gpa_t addr, unsigned long *ret); int is_mmio_pfn(pfn_t pfn); extern bool tdp_enabled; enum emulation_result { Loading
virt/kvm/kvm_main.c +1 −1 Original line number Diff line number Diff line Loading @@ -76,7 +76,7 @@ static inline int valid_vcpu(int n) return likely(n >= 0 && n < KVM_MAX_VCPUS); } inline int is_mmio_pfn(pfn_t pfn) static inline int is_mmio_pfn(pfn_t pfn) { if (pfn_valid(pfn)) return PageReserved(pfn_to_page(pfn)); Loading