disp: msm: sde: fix kms NULL pointer access in encoder IRQ control
A possible kms NULL pointer access is found during CPU vote for IRQ when kms isn't NULL checked before accessing structure members. So, perform kms NULL check before accessing members. Change-Id: I137759ea0723be8580e9166c983d1ba38f4eb281 Signed-off-by: Jayasri Sampath Kumaran <quic_jsampath@quicinc.com>
This commit is contained in:
committed by
Karthik Veeranki
parent
0289b7a3f7
commit
bd90eaaa4b
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2013 Red Hat
|
||||
* Author: Rob Clark <robdclark@gmail.com>
|
||||
@@ -1434,6 +1434,7 @@ static int _sde_encoder_update_rsc_client(
|
||||
void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable)
|
||||
{
|
||||
struct sde_encoder_virt *sde_enc;
|
||||
struct sde_kms *sde_kms = NULL;
|
||||
int i;
|
||||
|
||||
if (!drm_enc) {
|
||||
@@ -1441,6 +1442,12 @@ void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable)
|
||||
return;
|
||||
}
|
||||
|
||||
sde_kms = sde_encoder_get_kms(drm_enc);
|
||||
if (!sde_kms) {
|
||||
SDE_ERROR("invalid kms\n");
|
||||
return;
|
||||
}
|
||||
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
|
||||
SDE_DEBUG_ENC(sde_enc, "enable:%d\n", enable);
|
||||
@@ -1450,7 +1457,7 @@ void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable)
|
||||
if (phys && phys->ops.irq_control)
|
||||
phys->ops.irq_control(phys, enable);
|
||||
}
|
||||
sde_kms_cpu_vote_for_irq(sde_encoder_get_kms(drm_enc), enable);
|
||||
sde_kms_cpu_vote_for_irq(sde_kms, enable);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user