[PATCH] drm/crtc-helper: Fixup error handling in drm_helper_crtc_mode_set

Daniel Stone daniels at collabora.com
Thu Jul 2 02:01:31 PDT 2015


Hi,

On Thu, 2015-07-02 at 09:23 +0200, Daniel Vetter wrote:
> In
> 
> commit 9f658b7b62e7aefc1ee067136126eca3f58cabfd
> Author: Daniel Stone <daniels at collabora.com>
> Date:   Fri May 22 13:34:45 2015 +0100
> 
>     drm/crtc_helper: Replace open-coded CRTC state helpers
> 
> error handling code was broken, resulting in the first path not being
> checked correctly. Fix this by using the same pattern as in the
> transitional plane helper function drm_plane_helper_update.
> 
> @@ -927,15 +927,13 @@ int drm_helper_crtc_mode_set(struct drm_crtc
> *crtc, struct drm_display_mode *mod
>  
>  	if (crtc->funcs->atomic_duplicate_state)
>  		crtc_state = crtc->funcs
> ->atomic_duplicate_state(crtc);
> -	else {
> +	else if (crtc->state)
> +		crtc_state = 
> drm_atomic_helper_crtc_duplicate_state(crtc);
> +	else
>  		crtc_state = kzalloc(sizeof(*crtc_state), 
> GFP_KERNEL);
> -		if (!crtc_state)
> -			return -ENOMEM;
> -		if (crtc->state)
> -			__drm_atomic_helper_crtc_duplicate_state(crt
> c, crtc_state);
> -		else
> -			crtc_state->crtc = crtc;

Isn't this line (the crtc_state->crtc) assignment now missing from the
kzalloc branch?

With that fixed:
Reviewed-by: Daniel Stone <daniels at collabora.com>

Cheers,
Daniel


More information about the dri-devel mailing list