On Thu, Dec 03, 2015 at 10:14:54AM +0100, Daniel Vetter wrote:
> On Tue, Dec 01, 2015 at 11:05:35AM +0000, Chris Wilson wrote:
> > diff --git a/drivers/gpu/drm/i915/intel_display.c 
> > b/drivers/gpu/drm/i915/intel_display.c
> > index 4447e73b54db..73c61b94f7fd 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -13315,23 +13309,15 @@ static int intel_atomic_prepare_commit(struct 
> > drm_device *dev,
> >  
> >                     ret = __i915_wait_request(intel_plane_state->wait_req,
> >                                               true, NULL, NULL);
> > -
> > -                   /* Swallow -EIO errors to allow updates during hw 
> > lockup. */
> > -                   if (ret == -EIO)
> > -                           ret = 0;
> > -
> > -                   if (ret)
> > +                   if (ret) {
> > +                           mutex_lock(&dev->struct_mutex);
> > +                           drm_atomic_helper_cleanup_planes(dev, state);
> > +                           mutex_unlock(&dev->struct_mutex);
> >                             break;
> > +                   }
> >             }
> > -
> > -           if (!ret)
> > -                   return 0;
> > -
> > -           mutex_lock(&dev->struct_mutex);
> > -           drm_atomic_helper_cleanup_planes(dev, state);
> >     }
> >  
> > -   mutex_unlock(&dev->struct_mutex);
> 
> Sneaking in lockless waits! Separate patch please.

No, it is just badly written code. The wait is already lockless but the
lock is dropped and retaken around the error paths in such a manner that
you cannot see this from a glimpse.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to