On Fri, Aug 13, 2021 at 11:48 AM Mark Yacoub <markyacoub@xxxxxxxxxxxx> wrote: > > Thanks for your review Michel! > @MAINTAINER, could you please strip the Change-Id when applying. > Thanks! Applied to drm-misc-fixes with the Change-Id removed. Thank you for your patch! Sean > > On Fri, Aug 13, 2021 at 3:33 AM Michel Dänzer <michel@xxxxxxxxxxx> wrote: > > > > On 2021-08-12 9:49 p.m., Mark Yacoub wrote: > > > From: Mark Yacoub <markyacoub@xxxxxxxxxx> > > > > > > [Why] > > > Userspace should get back a copy of drm_wait_vblank that's been modified > > > even when drm_wait_vblank_ioctl returns a failure. > > > > > > Rationale: > > > drm_wait_vblank_ioctl modifies the request and expects the user to read > > > it back. When the type is RELATIVE, it modifies it to ABSOLUTE and updates > > > the sequence to become current_vblank_count + sequence (which was > > > RELATIVE), but now it became ABSOLUTE. > > > drmWaitVBlank (in libdrm) expects this to be the case as it modifies > > > the request to be Absolute so it expects the sequence to would have been > > > updated. > > > > > > The change is in compat_drm_wait_vblank, which is called by > > > drm_compat_ioctl. This change of copying the data back regardless of the > > > return number makes it en par with drm_ioctl, which always copies the > > > data before returning. > > > > > > [How] > > > Return from the function after everything has been copied to user. > > > > > > Fixes: IGT:kms_flip::modeset-vs-vblank-race-interruptible > > > Tested on ChromeOS Trogdor(msm) > > > > > > Signed-off-by: Mark Yacoub <markyacoub@xxxxxxxxxxxx> > > > Change-Id: I98da279a5f1329c66a9d1e06b88d40b247b51313 > > > > With the Gerrit Change-Id removed, > > > > Reviewed-by: Michel Dänzer <mdaenzer@xxxxxxxxxx> > > > > > > -- > > Earthling Michel Dänzer | https://redhat.com > > Libre software enthusiast | Mesa and X developer