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

Commit 4eef82b2 authored by Clarence Ip's avatar Clarence Ip
Browse files

drm/msm/sde: add null checks to sde kms prepare/commit



This patch adds null checks for kms and dev pointers before
attempting to dereference them.

CRs-Fixed: 2037667
Change-Id: Id3517c8c33155df6d47ddd019731d039201e9fa6
Signed-off-by: default avatarClarence Ip <cip@codeaurora.org>
parent fa403c81
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -348,9 +348,16 @@ static void sde_kms_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
static void sde_kms_prepare_commit(struct msm_kms *kms,
		struct drm_atomic_state *state)
{
	struct sde_kms *sde_kms = to_sde_kms(kms);
	struct drm_device *dev = sde_kms->dev;
	struct msm_drm_private *priv = dev->dev_private;
	struct sde_kms *sde_kms;
	struct msm_drm_private *priv;

	if (!kms)
		return;
	sde_kms = to_sde_kms(kms);

	if (!sde_kms->dev || !sde_kms->dev->dev_private)
		return;
	priv = sde_kms->dev->dev_private;

	sde_power_resource_enable(&priv->phandle, sde_kms->core_client, true);
}
@@ -373,13 +380,20 @@ static void sde_kms_commit(struct msm_kms *kms,
static void sde_kms_complete_commit(struct msm_kms *kms,
		struct drm_atomic_state *old_state)
{
	struct sde_kms *sde_kms = to_sde_kms(kms);
	struct drm_device *dev = sde_kms->dev;
	struct msm_drm_private *priv = dev->dev_private;
	struct sde_kms *sde_kms;
	struct msm_drm_private *priv;
	struct drm_crtc *crtc;
	struct drm_crtc_state *old_crtc_state;
	int i;

	if (!kms || !old_state)
		return;
	sde_kms = to_sde_kms(kms);

	if (!sde_kms->dev || !sde_kms->dev->dev_private)
		return;
	priv = sde_kms->dev->dev_private;

	for_each_crtc_in_state(old_state, crtc, old_crtc_state, i)
		sde_crtc_complete_commit(crtc, old_crtc_state);
	sde_power_resource_enable(&priv->phandle, sde_kms->core_client, false);