diff mbox series

iommu/exynos: fix error handling in exynos_iommu_init()

Message ID 20230104095702.2591122-1-yangyingliang@huawei.com
State New
Headers show
Series iommu/exynos: fix error handling in exynos_iommu_init() | expand

Commit Message

Yang Yingliang Jan. 4, 2023, 9:57 a.m. UTC
If platform_driver_register() fails, it don't need unregister and call
kmem_cache_free() to free the memory allocated before calling register.

Fixes: bbc4d205d93f ("iommu/exynos: Fix driver initialization sequence")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
 drivers/iommu/exynos-iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sam Protsenko Jan. 5, 2023, 6:06 p.m. UTC | #1
On Wed, 4 Jan 2023 at 03:38, Yang Yingliang <yangyingliang@huawei.com> wrote:
>
> If platform_driver_register() fails, it don't need unregister and call
> kmem_cache_free() to free the memory allocated before calling register.
>
> Fixes: bbc4d205d93f ("iommu/exynos: Fix driver initialization sequence")
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>

>  drivers/iommu/exynos-iommu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index b0cde2211987..c1d579c24740 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -1446,7 +1446,7 @@ static int __init exynos_iommu_init(void)
>
>         return 0;
>  err_reg_driver:
> -       platform_driver_unregister(&exynos_sysmmu_driver);
> +       kmem_cache_free(lv2table_kmem_cache, zero_lv2_table);
>  err_zero_lv2:
>         kmem_cache_destroy(lv2table_kmem_cache);
>         return ret;
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index b0cde2211987..c1d579c24740 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -1446,7 +1446,7 @@  static int __init exynos_iommu_init(void)
 
 	return 0;
 err_reg_driver:
-	platform_driver_unregister(&exynos_sysmmu_driver);
+	kmem_cache_free(lv2table_kmem_cache, zero_lv2_table);
 err_zero_lv2:
 	kmem_cache_destroy(lv2table_kmem_cache);
 	return ret;