From: Weidong Han Date: Mon, 8 Dec 2008 08:35:39 +0000 (+0800) Subject: Add domain flag DOMAIN_FLAG_VIRTUAL_MACHINE X-Git-Tag: v2.6.29-rc1~522^2~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ce28feb22833645a0f3843cd873a0b56ed19ef0;p=profile%2Fivi%2Fkernel-x86-ivi.git Add domain flag DOMAIN_FLAG_VIRTUAL_MACHINE Add this flag for VT-d used in virtual machine, like KVM. Signed-off-by: Weidong Han Signed-off-by: Joerg Roedel --- diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 104e99d..ffbe4c5 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c @@ -206,6 +206,11 @@ static inline bool dma_pte_present(struct dma_pte *pte) /* devices under the same p2p bridge are owned in one domain */ #define DOMAIN_FLAG_P2P_MULTIPLE_DEVICES (1 < 0) +/* domain represents a virtual machine, more than one devices + * across iommus may be owned in one domain, e.g. kvm guest. + */ +#define DOMAIN_FLAG_VIRTUAL_MACHINE (1 << 1) + struct dmar_domain { int id; /* domain id */ unsigned long iommu_bmp; /* bitmap of iommus this domain uses*/ @@ -391,6 +396,8 @@ static struct intel_iommu *domain_get_iommu(struct dmar_domain *domain) { int iommu_id; + BUG_ON(domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE); + iommu_id = find_first_bit(&domain->iommu_bmp, g_num_of_iommus); if (iommu_id < 0 || iommu_id >= g_num_of_iommus) return NULL;