On Wed, Apr 15, 2015 at 09:17:03AM +0100, Chris Wilson wrote: > On Wed, Apr 15, 2015 at 09:17:02AM +0200, Daniel Vetter wrote: > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > > index c8a34476570a..23bfbc61a494 100644 > > --- a/drivers/gpu/drm/drm_irq.c > > +++ b/drivers/gpu/drm/drm_irq.c > > @@ -74,6 +74,33 @@ module_param_named(vblankoffdelay, drm_vblank_offdelay, int, 0600); > > module_param_named(timestamp_precision_usec, drm_timestamp_precision, int, 0600); > > module_param_named(timestamp_monotonic, drm_timestamp_monotonic, int, 0600); > > > > +static void store_vblank(struct drm_device *dev, int crtc, > > + unsigned vblank_count_inc, > > + struct timeval *t_vblank) > > +{ > > + struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; > > + u32 tslot; > > + > > + assert_spin_locked(&dev->vblank_time_lock); > > + > > + if (t_vblank) { > > + tslot = vblank->count + vblank_count_inc; > > + vblanktimestamp(dev, crtc, tslot) = *t_vblank; > > + } > > It is not obvious this updates the right tslot in all circumstances. > Care to explain? Writers are synchronized with vblank_time_lock, so there shouldn't be any races. Mario also has a patch to clear the ts slot if we don't have anything to set it too (that one will conflict ofc). Or what exactly do you mean? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel