Files
linux/drivers
Ville Syrjälä ffe7c73a8d drm: Fix race between drm_vblank_off() and drm_queue_vblank_event()
Currently it's possible that the following will happen:
1. drm_wait_vblank() calls drm_vblank_get()
2. drm_vblank_off() gets called
3. drm_wait_vblank() calls drm_queue_vblank_event() which
   adds the event to the queue event though vblank interrupts
   are currently disabled (and may not be re-enabled ever again).

To fix the problem, add another vblank->enabled check into
drm_queue_vblank_event().

drm_vblank_off() holds event_lock around the vblank disable,
so no further locking needs to be added to drm_queue_vblank_event().
vblank disable from another source is not possible since
drm_wait_vblank() already holds a vblank reference.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-06 22:39:27 +02:00
..
2014-08-05 09:04:59 +10:00
2014-08-05 09:04:59 +10:00
2014-05-27 17:38:11 -07:00
2014-06-26 13:34:15 +01:00
2014-07-25 18:00:23 -07:00
2014-07-15 20:55:15 +02:00
2014-07-30 00:23:09 +02:00
2014-06-17 15:43:48 -07:00
2014-07-17 21:56:34 +02:00
2014-06-26 10:48:23 +01:00
2014-07-11 17:43:13 -07:00
2014-06-23 09:22:48 +03:00
2014-07-01 13:18:38 +03:00