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: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
Veera Sundaram Sankaran
2019-07-01 16:23:03 -07:00
부모 84f87add48
커밋 c102669c98

파일 보기

@@ -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 @@ modeset_update:
if (!ret)
_sde_plane_sspp_atomic_check_mode_changed(psde,
state, plane->state);
exit:
return ret;
}