Commit 77c38c8c authored by Shameer Kolothum's avatar Shameer Kolothum Committed by Will Deacon
Browse files

iommu: Check return of __iommu_attach_device()



Currently iommu_create_device_direct_mappings() is called
without checking the return of __iommu_attach_device(). This
may result in failures in iommu driver if dev attach returns
error.

Fixes: ce574c27 ("iommu: Move iommu_group_create_direct_mappings() out of iommu_group_add_device()")
Signed-off-by: default avatarShameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Link: https://lore.kernel.org/r/20201119165846.34180-1-shameerali.kolothum.thodi@huawei.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 72b55c96
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -264,16 +264,18 @@ int iommu_probe_device(struct device *dev)
	 */
	iommu_alloc_default_domain(group, dev);

	if (group->default_domain)
	if (group->default_domain) {
		ret = __iommu_attach_device(group->default_domain, dev);
		if (ret) {
			iommu_group_put(group);
			goto err_release;
		}
	}

	iommu_create_device_direct_mappings(group, dev);

	iommu_group_put(group);

	if (ret)
		goto err_release;

	if (ops->probe_finalize)
		ops->probe_finalize(dev);