25.09.2019 14:26, Thierry Reding пишет: > From: Thierry Reding <treding@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > 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@xxxxxxxxx> Tested-by: Dmitry Osipenko <digetx@xxxxxxxxx>