Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47638eae authored by Narendra Muppalla's avatar Narendra Muppalla
Browse files

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: default avatarNarendra Muppalla <NarendraM@codeaurora.org>
parent 5c92c5ac
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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 ||
+2 −2
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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;
	}