This is missing re-attach error handling if the attach fails, use the
common code.
The ugly "group->domain = prev_domain" will be cleaned in a later patch.
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/5-v5-1b99ae392328+44574-iommu_err_unwind_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
if (ret)
goto restore_old_domain;
- ret = iommu_group_create_direct_mappings(group);
+ group->domain = prev_dom;
+ ret = iommu_create_device_direct_mappings(group, dev);
if (ret)
goto free_new_domain;
- ret = __iommu_attach_group(group->default_domain, group);
+ ret = __iommu_group_set_domain(group, group->default_domain);
if (ret)
goto free_new_domain;
iommu_domain_free(group->default_domain);
restore_old_domain:
group->default_domain = prev_dom;
- group->domain = prev_dom;
return ret;
}