drm/msm/dpu: Avoid a null de-ref while recovering from kms init fail
In the failure path for dpu_kms_init() it is possible to get to the MMU destroy function with uninitialized MMU structs. Check for NULL and skip if needed. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
36415615ad
commit
fecabfd924
|
@ -56,7 +56,7 @@ static const char * const iommu_ports[] = {
|
|||
#define DPU_DEBUGFS_HWMASKNAME "hw_log_mask"
|
||||
|
||||
static int dpu_kms_hw_init(struct msm_kms *kms);
|
||||
static int _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms);
|
||||
static void _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms);
|
||||
|
||||
static unsigned long dpu_iomap_size(struct platform_device *pdev,
|
||||
const char *name)
|
||||
|
@ -713,17 +713,20 @@ static const struct msm_kms_funcs kms_funcs = {
|
|||
#endif
|
||||
};
|
||||
|
||||
static int _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms)
|
||||
static void _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms)
|
||||
{
|
||||
struct msm_mmu *mmu;
|
||||
|
||||
if (!dpu_kms->base.aspace)
|
||||
return;
|
||||
|
||||
mmu = dpu_kms->base.aspace->mmu;
|
||||
|
||||
mmu->funcs->detach(mmu, (const char **)iommu_ports,
|
||||
ARRAY_SIZE(iommu_ports));
|
||||
msm_gem_address_space_put(dpu_kms->base.aspace);
|
||||
|
||||
return 0;
|
||||
dpu_kms->base.aspace = NULL;
|
||||
}
|
||||
|
||||
static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
|
||||
|
|
Loading…
Reference in New Issue