Optimize the error handling to free the resources correctly when failed to allocate an iommu group.
Signed-off-by: Baolin Wang <baolin.w...@linux.alibaba.com> --- drivers/iommu/iommu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 03d6a26..ac91024 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -529,12 +529,18 @@ struct iommu_group *iommu_group_alloc(void) ret = iommu_group_create_file(group, &iommu_group_attr_reserved_regions); - if (ret) + if (ret) { + kobject_put(group->devices_kobj); return ERR_PTR(ret); + } ret = iommu_group_create_file(group, &iommu_group_attr_type); - if (ret) + if (ret) { + iommu_group_remove_file(group, + &iommu_group_attr_reserved_regions); + kobject_put(group->devices_kobj); return ERR_PTR(ret); + } pr_debug("Allocated group %d\n", group->id); -- 1.8.3.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu