[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240227021441.50434-1-baolu.lu@linux.intel.com>
Date: Tue, 27 Feb 2024 10:14:33 +0800
From: Lu Baolu <baolu.lu@...ux.intel.com>
To: Joerg Roedel <joro@...tes.org>
Cc: Tina Zhang <tina.zhang@...el.com>,
Erick Archer <erick.archer@....com>,
Jingqi Liu <Jingqi.liu@...el.com>,
iommu@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: [PATCH 0/8] [PULL REQUEST] Intel IOMMU updates for Linux v6.9
Hi Joerg,
The following changes have been queued for v6.9:
- Add rbtree to track iommu probed devices
- Add Intel IOMMU debugfs document
- Cleanup and refactoring
All patches are based on v6.8-rc6. The series is also available at:
https://github.com/LuBaolu/intel-iommu/commits/vtd-update-for-v6.9
Unfortunately, there is a merge conflict with your next branch, in
drivers/iommu/intel/svm.c. I resolved this conflict as below.
diff --cc drivers/iommu/intel/svm.c
index b644d57da841,bdf3584ca0af..c1bed89b1026
--- a/drivers/iommu/intel/svm.c
+++ b/drivers/iommu/intel/svm.c
@@@ -698,14 -693,20 +688,18 @@@ bad_req
* If prq is to be handled outside iommu driver via receiver of
* the fault notifiers, we skip the page response here.
*/
- if (!pdev)
+ mutex_lock(&iommu->iopf_lock);
+ dev = device_rbtree_find(iommu, req->rid);
+ if (!dev) {
+ mutex_unlock(&iommu->iopf_lock);
goto bad_req;
+ }
- intel_svm_prq_report(iommu, &pdev->dev, req);
- trace_prq_report(iommu, &pdev->dev, req->qw_0, req->qw_1,
- if (intel_svm_prq_report(iommu, dev, req))
- handle_bad_prq_event(iommu, req, QI_RESP_INVALID);
- else
- trace_prq_report(iommu, dev, req->qw_0, req->qw_1,
- req->priv_data[0], req->priv_data[1],
- iommu->prq_seq_number++);
++ intel_svm_prq_report(iommu, dev, req);
++ trace_prq_report(iommu, dev, req->qw_0, req->qw_1,
+ req->priv_data[0], req->priv_data[1],
+ iommu->prq_seq_number++);
- pci_dev_put(pdev);
+ mutex_unlock(&iommu->iopf_lock);
prq_advance:
head = (head + sizeof(*req)) & PRQ_RING_MASK;
}
@@@ -781,17 -794,10 +775,8 @@@ void intel_svm_page_response(struct dev
qi_submit_sync(iommu, &desc, 1, 0);
}
-out:
- return ret;
}
- static int intel_svm_set_dev_pasid(struct iommu_domain *domain,
- struct device *dev, ioasid_t pasid)
- {
- struct device_domain_info *info = dev_iommu_priv_get(dev);
- struct intel_iommu *iommu = info->iommu;
-
- return intel_svm_bind_mm(iommu, dev, domain, pasid);
- }
-
static void intel_svm_domain_free(struct iommu_domain *domain)
{
kfree(to_dmar_domain(domain));
With above in mind, please consider them for v6.9.
Best regards,
Baolu
Erick Archer (1):
iommu/vt-d: Use kcalloc() instead of kzalloc()
Jingqi Liu (1):
iommu/vt-d: Add the document for Intel IOMMU debugfs
Lu Baolu (3):
iommu/vt-d: Remove INTEL_IOMMU_BROKEN_GFX_WA
iommu/vt-d: Use rbtree to track iommu probed devices
iommu/vt-d: Use device rbtree in iopf reporting path
Tina Zhang (3):
iommu/vt-d: Remove treatment for revoking PASIDs with pending page
faults
iommu/vt-d: Remove initialization for dynamically heap-allocated
rcu_head
iommu/vt-d: Merge intel_svm_bind_mm() into its caller
drivers/iommu/intel/iommu.h | 10 +
drivers/iommu/intel/dmar.c | 4 +-
drivers/iommu/intel/iommu.c | 95 +++++-
drivers/iommu/intel/perf.c | 2 +-
drivers/iommu/intel/svm.c | 39 +--
Documentation/ABI/testing/debugfs-intel-iommu | 276 ++++++++++++++++++
drivers/iommu/intel/Kconfig | 11 -
7 files changed, 391 insertions(+), 46 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-intel-iommu
--
2.34.1
Powered by blists - more mailing lists