On Wed, Aug 24, 2016 at 04:16:55PM +0300, Mika Kuoppala wrote:
> Chris Wilson <[email protected]> writes:
> > index 7b8abda541e6..e432211e8b24 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -3673,16 +3673,14 @@ i915_gem_ring_throttle(struct drm_device *dev, 
> > struct drm_file *file)
> >             return -EIO;
> >  
> >     spin_lock(&file_priv->mm.lock);
> > -   list_for_each_entry(request, &file_priv->mm.request_list, client_list) {
> > +   list_for_each_entry(request, &file_priv->mm.request_list, client_link) {
> >             if (time_after_eq(request->emitted_jiffies, recent_enough))
> >                     break;
> >  
> > -           /*
> > -            * Note that the request might not have been submitted yet.
> > -            * In which case emitted_jiffies will be zero.
> > -            */
> > -           if (!request->emitted_jiffies)
> > -                   continue;
> > +           if (target) {
> > +                   list_del(&target->client_link);
> > +                   target->file_priv = NULL;
> 
> No need for list_for_each_entry_safe as we are throwing out stuff before
> the point of traversal?

Exactly, there is a very strict ordering here. We are deleting before
the cursor and we only ever add at the end (which is past the cursor).
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to