diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index ac4731d13a83..5b73d36e4359 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -3084,6 +3084,11 @@ int iommu_device_use_default_domain(struct device *dev) return 0; mutex_lock(&group->mutex); + /* We may race against bus_iommu_probe() finalising groups here */ + if (!group->default_domain) { + ret = -EPROBE_DEFER; + goto unlock_out; + } if (group->owner_cnt) { if (group->domain != group->default_domain || group->owner || !xa_empty(&group->pasid_array)) {