Re: [PATCH 08/10] drm/i915: Use crtc->state for duplication.

Daniel Vetter
2015-09-10T15:46:59Z

On Thu, Sep 10, 2015 at 05:46:12PM +0200, Daniel Vetter wrote:
> 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 <maarten.lankhorst@linux.intel.com>
> > ---
> > 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.

Argh got confused, that line is in dinq too. I added a commit reference to
your patch.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation