Skip to content

Commit

Permalink
drm: Core vsync: Don't clobber target sequence number when scheduling…
Browse files Browse the repository at this point in the history
… 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: Dave Airlie <airlied@linux.ie>
  • Loading branch information
=?utf-8?q?Michel_D=C3=A4nzer?= authored and airlied committed Dec 7, 2006
1 parent ab285d7 commit 049b323
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/char/drm/drm_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
}
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 049b323

Please sign in to comment.