diff options
| author | Lloyd Atkinson <latkinso@codeaurora.org> | 2017-01-09 17:37:18 -0500 |
|---|---|---|
| committer | Lloyd Atkinson <latkinso@codeaurora.org> | 2017-01-20 10:39:37 -0500 |
| commit | 6ce359fca39ceb6f70c9b1ff40e652934e75435a (patch) | |
| tree | be534dcfdf4b36eacb1e2f6d8802300f4d2f558c | |
| parent | c58bfaf5bb0d72c12ab429a3ffae82ff62cac8ef (diff) | |
drm/msm/sde: check for null catalog in sde hw destroy
Fix sde hw deconstruction which can be called twice back to
back if hw initialization itself fails. In this case the catalog
pointer will already be null, so we must check for it.
Change-Id: Idc05efd7dd8c2a27f2c8128654e4c0b06697f39e
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
| -rw-r--r-- | drivers/gpu/drm/msm/sde/sde_kms.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/msm/sde/sde_kms.c b/drivers/gpu/drm/msm/sde/sde_kms.c index 48704ef60f6e..6c64d72e8262 100644 --- a/drivers/gpu/drm/msm/sde/sde_kms.c +++ b/drivers/gpu/drm/msm/sde/sde_kms.c @@ -842,11 +842,13 @@ static void _sde_kms_hw_destroy(struct sde_kms *sde_kms, _sde_kms_mmu_destroy(sde_kms); sde_core_perf_destroy(&sde_kms->perf); - for (i = 0; i < sde_kms->catalog->vbif_count; i++) { - u32 vbif_idx = sde_kms->catalog->vbif[i].id; + if (sde_kms->catalog) { + for (i = 0; i < sde_kms->catalog->vbif_count; i++) { + u32 vbif_idx = sde_kms->catalog->vbif[i].id; - if ((vbif_idx < VBIF_MAX) && sde_kms->hw_vbif[vbif_idx]) - sde_hw_vbif_destroy(sde_kms->hw_vbif[vbif_idx]); + if ((vbif_idx < VBIF_MAX) && sde_kms->hw_vbif[vbif_idx]) + sde_hw_vbif_destroy(sde_kms->hw_vbif[vbif_idx]); + } } if (sde_kms->rm_init) |
