[PATCH] drm/amd/display: Add NULL pointer checks in dm_force_atomic_commit()
Aurabindo Pillai
aurabindo.pillai at amd.com
Thu Apr 17 20:12:47 UTC 2025
Reviewed-by: Aurabindo Pillai <aurabindo.pillai at amd.com>
On 2025-04-17 15:30, Srinivasan Shanmugam wrote:
> This commit updates the dm_force_atomic_commit function to replace the
> usage of PTR_ERR_OR_ZERO with IS_ERR for checking error states after
> retrieving the Connector (drm_atomic_get_connector_state), CRTC
> (drm_atomic_get_crtc_state), and Plane (drm_atomic_get_plane_state)
> states.
>
> The function utilized PTR_ERR_OR_ZERO for error checking. However, this
> approach is inappropriate in this context because the respective
> functions do not return NULL; they return pointers that encode errors.
>
> This change ensures that error pointers are properly checked using
> IS_ERR before attempting to dereference.
>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Cc: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> Cc: Tom Chung <chiahsuan.chung at amd.com>
> Cc: Roman Li <roman.li at amd.com>
> Cc: Alex Hung <alex.hung at amd.com>
> Cc: Aurabindo Pillai <aurabindo.pillai at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 012ff8332dd2..4a31d99da505 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -10621,16 +10621,20 @@ static int dm_force_atomic_commit(struct drm_connector *connector)
> */
> conn_state = drm_atomic_get_connector_state(state, connector);
>
> - ret = PTR_ERR_OR_ZERO(conn_state);
> - if (ret)
> + /* Check for error in getting connector state */
> + if (IS_ERR(conn_state)) {
> + ret = PTR_ERR(conn_state);
> goto out;
> + }
>
> /* Attach crtc to drm_atomic_state*/
> crtc_state = drm_atomic_get_crtc_state(state, &disconnected_acrtc->base);
>
> - ret = PTR_ERR_OR_ZERO(crtc_state);
> - if (ret)
> + /* Check for error in getting crtc state */
> + if (IS_ERR(crtc_state)) {
> + ret = PTR_ERR(crtc_state);
> goto out;
> + }
>
> /* force a restore */
> crtc_state->mode_changed = true;
> @@ -10638,9 +10642,11 @@ static int dm_force_atomic_commit(struct drm_connector *connector)
> /* Attach plane to drm_atomic_state */
> plane_state = drm_atomic_get_plane_state(state, plane);
>
> - ret = PTR_ERR_OR_ZERO(plane_state);
> - if (ret)
> + /* Check for error in getting plane state */
> + if (IS_ERR(plane_state)) {
> + ret = PTR_ERR(plane_state);
> goto out;
> + }
>
> /* Call commit internally with the state we just constructed */
> ret = drm_atomic_commit(state);
--
Thanks & Regards,
Aurabindo Pillai
More information about the amd-gfx
mailing list