Re: [PATCH v2 1/5] iommu/amd: Refactor device probe and capability initialization
Pranjal Shrivastava <[email protected]>
| Newsgroups | dev.linux.lists.iommu,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Aug 22, 2026 at 06:34:42PM +0530, Vasant Hegde wrote: > Pranjal, > > > On 8/14/2026 7:26 AM, Pranjal Shrivastava wrote: > > Restructure the device probe path to improve readability and prepare for > > cleaner error handling. Refactor check_device() into iommu_lookup_device > > to explicitly validate and return the amd_iommu ptr & devid. Refactor > > iommu_init_device() to return the allocated dev_data. Consolidate all > > PCI cap inits (MSI domains, PASID, ATS) into a new helper: > > iommu_init_device_caps(). > > > > Suggested-by: Vasant Hegde <[email protected]> > > Signed-off-by: Pranjal Shrivastava <[email protected]> > > --- > > drivers/iommu/amd/iommu.c | 114 +++++++++++++++++++------------------- > > 1 file changed, 56 insertions(+), 58 deletions(-) > > > > diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c > > index 4c31294fabc5..9b8ad131ba79 100644 > > --- a/drivers/iommu/amd/iommu.c > > +++ b/drivers/iommu/amd/iommu.c > > @@ -675,7 +675,8 @@ static void pdev_disable_caps(struct pci_dev *pdev) > > > .../... > > > - amd_iommu_set_pci_msi_domain(dev, iommu); > > + iommu_init_device_caps(dev_data, dev, iommu); > > iommu_dev = &iommu->iommu; > > > > - /* > > - * If IOMMU and device supports PASID then it will contain max > > - * supported PASIDs, else it will be zero. > > - */ > > - dev_data = dev_iommu_priv_get(dev); > > - if (amd_iommu_pasid_supported() && dev_is_pci(dev) && > > - pdev_pasid_supported(dev_data)) { > > - dev_data->max_pasids = min_t(u32, iommu->iommu.max_pasids, > > - pci_max_pasids(to_pci_dev(dev))); > > - } > > - > > Can you add something like below comment so that we know why we are not calling > iommu_ignore_device in error path. Ack, I'll add a comment about this. > > + * When DMA translation is unavailable return error so the iommu core > + * won't attempt domain attach for this device. But interrupt-remap > + * is still supported. Hence do not ignore the device. > > -Vasant > Thanks, Praan