Re: [PATCH] drm/i915: Assert intel_wait and its rb_node are complimentary

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Tvrtko Ursulin (2018-10-15 13:58:06)
> 
> On 12/10/2018 16:15, Chris Wilson wrote:
> > For convenience, we want to interchange intel_wait/rb_node and treat a
> > NULL rb_node as a NULL intel_wait and vice versa. Assert that the
> > rb_node is at offset 0 in the intel_wait to ensure this.
> > 
> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
> > ---
> >   drivers/gpu/drm/i915/intel_breadcrumbs.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> > index 84bf8d827136..44f117612193 100644
> > --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
> > +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> > @@ -342,6 +342,7 @@ static bool __intel_breadcrumbs_enable_irq(struct intel_breadcrumbs *b)
> >   
> >   static inline struct intel_wait *to_wait(struct rb_node *node)
> >   {
> > +     BUILD_BUG_ON(offsetof(struct intel_wait, node));
> >       return rb_entry(node, struct intel_wait, node);
> >   }
> >   
> > 
> 
> I expected to see someone checking to_wait(...) for (non)-null but can't 
> really spot it. Only potential candidate might be GEM_BUG_ON(b->irq_wait 
> == wait) in __intel_breadrcumbs_finish, but that one could check it 
> explicitly. Am I missing some?

It was actually chain_wakeup() that caught my eye. There we check the
rb_node is not NULL, and was thinking about whether that required that
intel_wait itself is not NULL (thinking along the lines of extracting it
from the container, but as it is returned by rb_next() there isn't
actually a dependency to worry about.)
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux