Add missing iommu_device_sysfs_remove in error path.

Also adjust sequence of deinit functions in the remove.

Signed-off-by: Jeffy Chen <jeffy.c...@rock-chips.com>
---

Changes in v2: None

 drivers/iommu/rockchip-iommu.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index 4ffb3a65c9d2..bd8b32dc0db6 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
@@ -1182,18 +1182,20 @@ static int rk_iommu_probe(struct platform_device *pdev)
 
        iommu_device_set_ops(&iommu->iommu, &rk_iommu_ops);
        err = iommu_device_register(&iommu->iommu);
+       if (err) {
+               iommu_device_sysfs_remove(&iommu->iommu);
+               return err;
+       }
 
-       return err;
+       return 0;
 }
 
 static int rk_iommu_remove(struct platform_device *pdev)
 {
        struct rk_iommu *iommu = platform_get_drvdata(pdev);
 
-       if (iommu) {
-               iommu_device_sysfs_remove(&iommu->iommu);
-               iommu_device_unregister(&iommu->iommu);
-       }
+       iommu_device_unregister(&iommu->iommu);
+       iommu_device_sysfs_remove(&iommu->iommu);
 
        return 0;
 }
-- 
2.11.0


_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to