diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2013-10-30 11:02:30 -0600 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-10-30 19:02:23 +0100 |
commit | e0f0bbc527f6e9c0261f1d16b2a0b47612b7f235 (patch) | |
tree | 623b954e7571767c4d5f0581ad8ba6eacd48785d /arch/x86/kvm/vmx.c | |
parent | d96eb2c6f480769bff32054e78b964860dae4d56 (diff) | |
download | lwn-e0f0bbc527f6e9c0261f1d16b2a0b47612b7f235.tar.gz lwn-e0f0bbc527f6e9c0261f1d16b2a0b47612b7f235.zip |
kvm: Create non-coherent DMA registeration
We currently use some ad-hoc arch variables tied to legacy KVM device
assignment to manage emulation of instructions that depend on whether
non-coherent DMA is present. Create an interface for this, adapting
legacy KVM device assignment and adding VFIO via the KVM-VFIO device.
For now we assume that non-coherent DMA is possible any time we have a
VFIO group. Eventually an interface can be developed as part of the
VFIO external user interface to query the coherency of a group.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r-- | arch/x86/kvm/vmx.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 727a5e980c43..fabf7421ec18 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -7445,8 +7445,7 @@ static u64 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio) */ if (is_mmio) ret = MTRR_TYPE_UNCACHABLE << VMX_EPT_MT_EPTE_SHIFT; - else if (vcpu->kvm->arch.iommu_domain && - vcpu->kvm->arch.iommu_noncoherent) + else if (kvm_arch_has_noncoherent_dma(vcpu->kvm)) ret = kvm_get_guest_memory_type(vcpu, gfn) << VMX_EPT_MT_EPTE_SHIFT; else |