lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 14 Mar 2022 22:07:08 -0700 From: Jacob Pan <jacob.jun.pan@...ux.intel.com> To: iommu@...ts.linux-foundation.org, LKML <linux-kernel@...r.kernel.org>, Joerg Roedel <joro@...tes.org>, Jason Gunthorpe <jgg@...dia.com>, "Christoph Hellwig" <hch@...radead.org>, "Lu Baolu" <baolu.lu@...ux.intel.com>, Jean-Philippe Brucker <jean-philippe@...aro.com> Cc: Jacob Pan <jacob.jun.pan@...el.com>, Raj Ashok <ashok.raj@...el.com>, "Kumar, Sanjay K" <sanjay.k.kumar@...el.com>, Dave Jiang <dave.jiang@...el.com>, Tony Luck <tony.luck@...el.com>, "Zanussi, Tom" <tom.zanussi@...el.com>, Dan Williams <dan.j.williams@...el.com>, "Tian, Kevin" <kevin.tian@...el.com>, Yi Liu <yi.l.liu@...el.com> Subject: [PATCH v2 4/8] iommu/vt-d: Use device_pasid attach op for RID2PASID With the availability of a generic device-PASID-domain attachment API, there's no need to special case RID2PASID. Use the API to replace duplicated code. Signed-off-by: Jacob Pan <jacob.jun.pan@...ux.intel.com> --- drivers/iommu/intel/iommu.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 9267194eaed3..f832b7599d21 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -1683,9 +1683,6 @@ static void domain_flush_piotlb(struct intel_iommu *iommu, qi_flush_piotlb(iommu, did, domain->default_pasid, addr, npages, ih); - if (!list_empty(&domain->devices)) - qi_flush_piotlb(iommu, did, PASID_RID2PASID, addr, npages, ih); - if (list_empty(&domain->devices) || xa_empty(&domain->pasids)) return; @@ -2826,17 +2823,7 @@ static struct dmar_domain *dmar_insert_one_dev_info(struct intel_iommu *iommu, } /* Setup the PASID entry for requests without PASID: */ - spin_lock_irqsave(&iommu->lock, flags); - if (hw_pass_through && domain_type_is_si(domain)) - ret = intel_pasid_setup_pass_through(iommu, domain, - dev, PASID_RID2PASID); - else if (domain_use_first_level(domain)) - ret = domain_setup_first_level(iommu, domain, dev, - PASID_RID2PASID); - else - ret = intel_pasid_setup_second_level(iommu, domain, - dev, PASID_RID2PASID); - spin_unlock_irqrestore(&iommu->lock, flags); + ret = intel_iommu_attach_dev_pasid(&domain->domain, dev, PASID_RID2PASID); if (ret) { dev_err(dev, "Setup RID2PASID failed\n"); dmar_remove_one_dev_info(dev); @@ -4618,8 +4605,7 @@ static void __dmar_remove_one_dev_info(struct device_domain_info *info) if (info->dev && !dev_is_real_dma_subdevice(info->dev)) { if (dev_is_pci(info->dev) && sm_supported(iommu)) - intel_pasid_tear_down_entry(iommu, info->dev, - PASID_RID2PASID, false); + intel_iommu_detach_dev_pasid(&domain->domain, info->dev, PASID_RID2PASID); iommu_disable_dev_iotlb(info); domain_context_clear(info); -- 2.25.1
Powered by blists - more mailing lists