On Thu, Sep 10, 2015 at 04:08:03PM +0200, Maarten Lankhorst wrote:
> In async mode crtc->config can be updated after the locks are released,
> resulting in the wrong state being duplicated.
> 
> Signed-off-by: Maarten Lankhorst <[email protected]>
> ---
>  drivers/gpu/drm/i915/intel_atomic.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_atomic.c 
> b/drivers/gpu/drm/i915/intel_atomic.c
> index 8287b81287a0..9d5cc89ebfcb 100644
> --- a/drivers/gpu/drm/i915/intel_atomic.c
> +++ b/drivers/gpu/drm/i915/intel_atomic.c
> @@ -85,20 +85,13 @@ intel_connector_atomic_get_property(struct drm_connector 
> *connector,
>  struct drm_crtc_state *
>  intel_crtc_duplicate_state(struct drm_crtc *crtc)
>  {
> -     struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>       struct intel_crtc_state *crtc_state;
>  
> -     if (WARN_ON(!intel_crtc->config))
> -             crtc_state = kzalloc(sizeof(*crtc_state), GFP_KERNEL);
> -     else
> -             crtc_state = kmemdup(intel_crtc->config,
> -                                  sizeof(*intel_crtc->config), GFP_KERNEL);
> -
> +     crtc_state = kmemdup(crtc->state, sizeof(*crtc_state), GFP_KERNEL);
>       if (!crtc_state)
>               return NULL;
>  
>       __drm_atomic_helper_crtc_duplicate_state(crtc, &crtc_state->base);
> -     crtc_state->base.crtc = crtc;

This is a bugfix for Ander's patch in 4.3. Please split it out and submit
just that part to Jani. I've dropped this part from the patch I merged to
dinq.
-Daniel

>       crtc_state->update_pipe = false;
>  
>       return &crtc_state->base;
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to