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

Commit c102669c authored by Veera Sundaram Sankaran's avatar Veera Sundaram Sankaran
Browse files

disp: msm: sde: fix error return in plane atomic_check



In plane atomic_check function, the error code
from one of the checks is overwritten by the
return-value of subsequent check. This leads to
wrong return-value propagation resulting in
undefined behavior. Fix it to return the appropriate
error code on any failure.

Change-Id: I53b427d1b69c3ebfaa6709814bd9095676ff942d
Signed-off-by: default avatarVeera Sundaram Sankaran <veeras@codeaurora.org>
parent 84f87add
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2536,8 +2536,7 @@ static int sde_plane_sspp_atomic_check(struct drm_plane *plane,

	if (!psde->pipe_sblk) {
		SDE_ERROR_PLANE(psde, "invalid catalog\n");
		ret = -EINVAL;
		goto exit;
		return -EINVAL;
	}

	/* src values are in Q16 fixed point, convert to integer */
@@ -2605,6 +2604,9 @@ static int sde_plane_sspp_atomic_check(struct drm_plane *plane,
		ret = -EINVAL;
	}

	if (ret)
		return ret;

	ret = _sde_atomic_check_decimation_scaler(state, psde, fmt, pstate,
		&src, &dst, width, height);

@@ -2626,7 +2628,6 @@ static int sde_plane_sspp_atomic_check(struct drm_plane *plane,
	if (!ret)
		_sde_plane_sspp_atomic_check_mode_changed(psde,
				state, plane->state);
exit:
	return ret;
}