Commit a93be1fc authored by Sean Paul's avatar Sean Paul
Browse files

drm/msm/dpu: Avoid calling _dpu_kms_mmu_destroy() on init failure



Fix the error paths in _dpu_kms_mmu_init() to properly
clean up the iommu domain and not call _dpu_kms_mmu_destroy() when
things are only partially setup.

Reviewed-by: default avatarRob Clark <robdclark@chromium.org>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190617200405.131843-2-sean@poorly.run
parent 73e82519
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -745,25 +745,20 @@ static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
	aspace = msm_gem_address_space_create(dpu_kms->dev->dev,
			domain, "dpu1");
	if (IS_ERR(aspace)) {
		ret = PTR_ERR(aspace);
		goto fail;
		iommu_domain_free(domain);
		return PTR_ERR(aspace);
	}

	dpu_kms->base.aspace = aspace;

	ret = aspace->mmu->funcs->attach(aspace->mmu, iommu_ports,
			ARRAY_SIZE(iommu_ports));
	if (ret) {
		DPU_ERROR("failed to attach iommu %d\n", ret);
		msm_gem_address_space_put(aspace);
		goto fail;
		return ret;
	}

	dpu_kms->base.aspace = aspace;
	return 0;
fail:
	_dpu_kms_mmu_destroy(dpu_kms);

	return ret;
}

static struct dss_clk *_dpu_kms_get_clk(struct dpu_kms *dpu_kms,