disp: msm: sde: fix kw issues in sde driver
This change to address use after free and null checks in sde driver. Change-Id: Iade91596748b1b867ae959e61fca0f7072eda8f3 Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
This commit is contained in:
@@ -3505,10 +3505,15 @@ static void _sde_crtc_schedule_idle_notify(struct drm_crtc *crtc,
|
||||
struct sde_crtc *sde_crtc = to_sde_crtc(crtc);
|
||||
struct sde_crtc_state *cstate = to_sde_crtc_state(old_state);
|
||||
struct sde_kms *sde_kms = _sde_crtc_get_kms(crtc);
|
||||
struct msm_drm_private *priv = sde_kms->dev->dev_private;
|
||||
struct msm_drm_private *priv;
|
||||
struct msm_drm_thread *event_thread;
|
||||
int idle_time = 0;
|
||||
|
||||
if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev_private)
|
||||
return;
|
||||
|
||||
priv = sde_kms->dev->dev_private;
|
||||
|
||||
idle_time = sde_crtc_get_property(cstate, CRTC_PROP_IDLE_TIMEOUT);
|
||||
|
||||
if (!idle_time ||
|
||||
|
@@ -2618,7 +2618,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
|
||||
struct drm_display_mode *cur_mode = NULL;
|
||||
struct msm_display_info *disp_info;
|
||||
|
||||
if (!drm_enc) {
|
||||
if (!drm_enc || !drm_enc->crtc) {
|
||||
SDE_ERROR("invalid encoder\n");
|
||||
return;
|
||||
}
|
||||
@@ -2630,7 +2630,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
|
||||
return;
|
||||
}
|
||||
|
||||
if (drm_enc->crtc && !sde_enc->crtc)
|
||||
if (!sde_enc->crtc)
|
||||
sde_enc->crtc = drm_enc->crtc;
|
||||
|
||||
comp_info = &sde_enc->mode_info.comp_info;
|
||||
|
@@ -2293,8 +2293,8 @@ void sde_rm_release(struct sde_rm *rm, struct drm_encoder *enc, bool nxt)
|
||||
if (!conn) {
|
||||
SDE_EVT32(enc->base.id, 0x0, 0xffffffff);
|
||||
_sde_rm_release_rsvp(rm, rsvp, conn);
|
||||
SDE_DEBUG("failed to get conn for enc %d nxt %d rsvp[s%de%d]\n",
|
||||
enc->base.id, nxt, rsvp->seq, rsvp->enc_id);
|
||||
SDE_DEBUG("failed to get conn for enc %d nxt %d\n",
|
||||
enc->base.id, nxt);
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
Viittaa uudesa ongelmassa
Block a user