On Wed, Nov 15, 2023 at 06:25:44PM +0000, Robin Murphy wrote: > It turns out there are more subtle races beyond just the main part of > __iommu_probe_device() itself running in parallel - the dev_iommu_free() > on the way out of an unsuccessful probe can still manage to trip up > concurrent accesses to a device's fwspec. Thus, extend the scope of > iommu_probe_device_lock() to also serialise fwspec creation and initial > retrieval. > > Reported-by: Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx> > Link: https://lore.kernel.org/linux-iommu/e2e20e1c-6450-4ac5-9804-b0000acdf7de@xxxxxxxxxxx/ Apparently this is "Closes:" nowadays > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index f17a1113f3d6..e0c962648dde 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -485,11 +485,12 @@ static void iommu_deinit_device(struct device *dev) > dev_iommu_free(dev); > } > > +DEFINE_MUTEX(iommu_probe_device_lock); > + Please put this at the top of the file with the other declarations, I will rebase the lockdep annotations from the other series Thanks, Jason