mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-17 06:39:37 +02:00
drm/msm/adreno: Assign msm_gpu->pdev earlier to avoid nullptrs
[ Upstream commit1600776855
] There are some cases, such as the one uncovered by Commit46d4efcccc
("drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails") where msm_gpu_cleanup() : platform_set_drvdata(gpu->pdev, NULL); is called on gpu->pdev == NULL, as the GPU device has not been fully initialized yet. Turns out that there's more than just the aforementioned path that causes this to happen (e.g. the case when there's speedbin data in the catalog, but opp-supported-hw is missing in DT). Assigning msm_gpu->pdev earlier seems like the least painful solution to this, therefore do so. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Patchwork: https://patchwork.freedesktop.org/patch/602742/ Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4155dff76a
commit
9288a9676c
|
@ -1071,6 +1071,7 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
|
|||
adreno_gpu->chip_id = config->chip_id;
|
||||
|
||||
gpu->allow_relocs = config->info->family < ADRENO_6XX_GEN1;
|
||||
gpu->pdev = pdev;
|
||||
|
||||
/* Only handle the core clock when GMU is not in use (or is absent). */
|
||||
if (adreno_has_gmu_wrapper(adreno_gpu) ||
|
||||
|
|
|
@ -927,7 +927,6 @@ int msm_gpu_init(struct drm_device *drm, struct platform_device *pdev,
|
|||
if (IS_ERR(gpu->gpu_cx))
|
||||
gpu->gpu_cx = NULL;
|
||||
|
||||
gpu->pdev = pdev;
|
||||
platform_set_drvdata(pdev, &gpu->adreno_smmu);
|
||||
|
||||
msm_devfreq_init(gpu);
|
||||
|
|
Loading…
Reference in New Issue
Block a user