BACKPORT: iommu: Extend mutex lock scope in iommu_probe_device()

Extend the scope of holding group->mutex so that it can cover the default
domain check/attachment and direct mappings of reserved regions.

Cc: Ashish Mhetre <amhetre@nvidia.com>
Fixes: 211ff31b3d33b ("iommu: Fix race condition during default domain allocation")
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20211108061349.1985579-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>

(cherry picked from commit 556f99ac886635e8da15528995f06d1d7028cfca)

Bug: 229173748
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I59bdee605a029bb28e7b023b90ab85983619be97
This commit is contained in:
Lu Baolu
2021-11-08 14:13:49 +08:00
committed by Suren Baghdasaryan
parent 00f2b55cc4
commit b8bb3b43a4

View File

@@ -270,11 +270,11 @@ int iommu_probe_device(struct device *dev)
*/
mutex_lock(&group->mutex);
iommu_alloc_default_domain(group, dev);
mutex_unlock(&group->mutex);
if (group->default_domain) {
ret = __iommu_attach_device(group->default_domain, dev);
if (ret) {
mutex_unlock(&group->mutex);
iommu_group_put(group);
goto err_release;
}
@@ -282,6 +282,7 @@ int iommu_probe_device(struct device *dev)
iommu_create_device_direct_mappings(group, dev);
mutex_unlock(&group->mutex);
iommu_group_put(group);
if (ops->probe_finalize)