Commit 4c8ad9da authored by Jason Gunthorpe's avatar Jason Gunthorpe Committed by Joerg Roedel

iommu: Use __iommu_group_set_domain() in iommu_change_dev_def_domain()

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: default avatarLu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
Tested-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/5-v5-1b99ae392328+44574-iommu_err_unwind_jgg@nvidia.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent ecd60dc5
...@@ -2946,11 +2946,12 @@ static int iommu_change_dev_def_domain(struct iommu_group *group, ...@@ -2946,11 +2946,12 @@ static int iommu_change_dev_def_domain(struct iommu_group *group,
if (ret) if (ret)
goto restore_old_domain; 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) if (ret)
goto free_new_domain; goto free_new_domain;
ret = __iommu_attach_group(group->default_domain, group); ret = __iommu_group_set_domain(group, group->default_domain);
if (ret) if (ret)
goto free_new_domain; goto free_new_domain;
...@@ -2962,7 +2963,6 @@ static int iommu_change_dev_def_domain(struct iommu_group *group, ...@@ -2962,7 +2963,6 @@ static int iommu_change_dev_def_domain(struct iommu_group *group,
iommu_domain_free(group->default_domain); iommu_domain_free(group->default_domain);
restore_old_domain: restore_old_domain:
group->default_domain = prev_dom; group->default_domain = prev_dom;
group->domain = prev_dom;
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment