[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <e56c8da801ff5757d14a97c4b49c28e43f449c14.1657034828.git.robin.murphy@arm.com>
Date: Tue, 5 Jul 2022 18:08:25 +0100
From: Robin Murphy <robin.murphy@....com>
To: joro@...tes.org
Cc: will@...nel.org, iommu@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, baolu.lu@...ux.intel.com,
suravee.suthikulpanit@....com, vasant.hegde@....com,
mjrosato@...ux.ibm.com, gerald.schaefer@...ux.ibm.com,
schnelle@...ux.ibm.com, linux-s390@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v3 02/15] iommu/amd: Handle race between registration and device probe
As for the Intel driver, make sure the AMD driver can cope with seeing
.probe_device calls without having to wait for all known instances to
register first.
Signed-off-by: Robin Murphy <robin.murphy@....com>
---
v3: New
drivers/iommu/amd/iommu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 840831d5d2ad..2f8e8f818a6c 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -1757,6 +1757,10 @@ static struct iommu_device *amd_iommu_probe_device(struct device *dev)
devid = get_device_id(dev);
iommu = amd_iommu_rlookup_table[devid];
+ /* Not registered yet? */
+ if (!iommu->iommu.ops)
+ return ERR_PTR(-ENODEV);
+
if (dev_iommu_priv_get(dev))
return &iommu->iommu;
--
2.36.1.dirty
Powered by blists - more mailing lists