From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753598AbbHEPTh (ORCPT ); Wed, 5 Aug 2015 11:19:37 -0400 Received: from 8bytes.org ([81.169.241.247]:43012 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753011AbbHEPTU (ORCPT ); Wed, 5 Aug 2015 11:19:20 -0400 From: Joerg Roedel To: iommu@lists.linux-foundation.org Cc: David Woodhouse , Alex Williamson , linux-kernel@vger.kernel.org, Joerg Roedel , jroedel@suse.de Subject: [PATCH 04/26] iommu/vt-d: Get rid of iommu_attach_vm_domain() Date: Wed, 5 Aug 2015 17:18:35 +0200 Message-Id: <1438787937-7340-5-git-send-email-joro@8bytes.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1438787937-7340-1-git-send-email-joro@8bytes.org> References: <1438787937-7340-1-git-send-email-joro@8bytes.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joerg Roedel The special case for VM domains is not needed, as other domains could be attached to the iommu in the same way. So get rid of this special case. Signed-off-by: Joerg Roedel --- drivers/iommu/intel-iommu.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 7f2e6c8..58fc4bb 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1669,8 +1669,13 @@ static int __iommu_attach_domain(struct dmar_domain *domain, int num; unsigned long ndomains; + num = domain->iommu_did[iommu->seq_id]; + if (num) + return num; + ndomains = cap_ndoms(iommu->cap); - num = find_first_zero_bit(iommu->domain_ids, ndomains); + num = find_first_zero_bit(iommu->domain_ids, ndomains); + if (num < ndomains) { set_bit(num, iommu->domain_ids); set_iommu_domain(iommu, num, domain); @@ -1679,6 +1684,9 @@ static int __iommu_attach_domain(struct dmar_domain *domain, num = -ENOSPC; } + if (num < 0) + pr_err("%s: No free domain ids\n", iommu->name); + return num; } @@ -1691,24 +1699,10 @@ static int iommu_attach_domain(struct dmar_domain *domain, spin_lock_irqsave(&iommu->lock, flags); num = __iommu_attach_domain(domain, iommu); spin_unlock_irqrestore(&iommu->lock, flags); - if (num < 0) - pr_err("%s: No free domain ids\n", iommu->name); return num; } -static int iommu_attach_vm_domain(struct dmar_domain *domain, - struct intel_iommu *iommu) -{ - int num; - - num = domain->iommu_did[iommu->seq_id]; - if (num) - return num; - - return __iommu_attach_domain(domain, iommu); -} - static void iommu_detach_domain(struct dmar_domain *domain, struct intel_iommu *iommu) { @@ -1944,7 +1938,7 @@ static int domain_context_mapping_one(struct dmar_domain *domain, if (domain_type_is_vm_or_si(domain)) { if (domain_type_is_vm(domain)) { - id = iommu_attach_vm_domain(domain, iommu); + id = __iommu_attach_domain(domain, iommu); if (id < 0) { spin_unlock_irqrestore(&iommu->lock, flags); pr_err("%s: No free domain ids\n", iommu->name); -- 1.9.1