Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 049b3233 authored by Michel Dänzer's avatar Michel Dänzer Committed by airlied
Browse files

drm: Core vsync: Don't clobber target sequence number when scheduling signal.



It looks like this would have caused signals to always get sent on the next
vertical blank, regardless of the sequence number.

Signed-off-by: default avatarDave Airlie <airlied@linux.ie>
parent ab285d74
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -296,8 +296,6 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)
				      ? &dev->vbl_sigs2 : &dev->vbl_sigs;
		drm_vbl_sig_t *vbl_sig;

		vblwait.reply.sequence = seq;

		spin_lock_irqsave(&dev->vbl_lock, irqflags);

		/* Check if this task has already scheduled the same signal
@@ -310,6 +308,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)
			    && vbl_sig->task == current) {
				spin_unlock_irqrestore(&dev->vbl_lock,
						       irqflags);
				vblwait.reply.sequence = seq;
				goto done;
			}
		}
@@ -340,6 +339,8 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)
		list_add_tail((struct list_head *)vbl_sig, &vbl_sigs->head);

		spin_unlock_irqrestore(&dev->vbl_lock, irqflags);

		vblwait.reply.sequence = seq;
	} else {
		if (flags & _DRM_VBLANK_SECONDARY) {
			if (dev->driver->vblank_wait2)