[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