[PATCH] drm/tegra: Fix ordering of cleanup code

Dmitry Osipenko digetx at gmail.com
Sun Sep 29 19:53:29 UTC 2019


25.09.2019 14:26, Thierry Reding пишет:
> From: Thierry Reding <treding at nvidia.com>
> 
> Commit Fixes: b9f8b09ce256 ("drm/tegra: Setup shared IOMMU domain after
> initialization") changed the initialization order of the IOMMU related
> bits but didn't update the cleanup path accordingly. This asymmetry can
> cause failures during error recovery.
> 
> Fixes: b9f8b09ce256 ("drm/tegra: Setup shared IOMMU domain after initialization")
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
>  drivers/gpu/drm/tegra/drm.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
> index 6fb7d74ff553..bc7cc32140f8 100644
> --- a/drivers/gpu/drm/tegra/drm.c
> +++ b/drivers/gpu/drm/tegra/drm.c
> @@ -201,19 +201,19 @@ static int tegra_drm_load(struct drm_device *drm, unsigned long flags)
>  	if (tegra->hub)
>  		tegra_display_hub_cleanup(tegra->hub);
>  device:
> -	host1x_device_exit(device);
> -fbdev:
> -	drm_kms_helper_poll_fini(drm);
> -	tegra_drm_fb_free(drm);
> -config:
> -	drm_mode_config_cleanup(drm);
> -
>  	if (tegra->domain) {
>  		mutex_destroy(&tegra->mm_lock);
>  		drm_mm_takedown(&tegra->mm);
>  		put_iova_domain(&tegra->carveout.domain);
>  		iova_cache_put();
>  	}
> +
> +	host1x_device_exit(device);
> +fbdev:
> +	drm_kms_helper_poll_fini(drm);
> +	tegra_drm_fb_free(drm);
> +config:
> +	drm_mode_config_cleanup(drm);
>  domain:
>  	if (tegra->domain)
>  		iommu_domain_free(tegra->domain);
> 

Hello Thierry,

Good that you spotted this! I had a similar patch sometime ago, but my
version had some problem and then I just forgot about it. I tried yours
patch and didn't notice anything wrong, thanks!

Reviewed-by: Dmitry Osipenko <digetx at gmail.com>
Tested-by: Dmitry Osipenko <digetx at gmail.com>


More information about the dri-devel mailing list