mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-14 13:19:36 +02:00
drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails
[ Upstream commit46d4efcccc
] Calling a6xx_destroy() before adreno_gpu_init() leads to a null pointer dereference on: msm_gpu_cleanup() : platform_set_drvdata(gpu->pdev, NULL); as gpu->pdev is only assigned in: a6xx_gpu_init() |_ adreno_gpu_init |_ msm_gpu_init() Instead of relying on handwavy null checks down the cleanup chain, explicitly de-allocate the LLC data and free a6xx_gpu instead. Fixes:76efc2453d
("drm/msm/gpu: Fix crash during system suspend after unbind") Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Patchwork: https://patchwork.freedesktop.org/patch/588919/ Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2a09eb7e36
commit
a1955a6df9
|
@ -2343,7 +2343,8 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
|
|||
|
||||
ret = a6xx_set_supported_hw(&pdev->dev, config->info);
|
||||
if (ret) {
|
||||
a6xx_destroy(&(a6xx_gpu->base.base));
|
||||
a6xx_llc_slices_destroy(a6xx_gpu);
|
||||
kfree(a6xx_gpu);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user