diff options
| author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-05-17 13:27:19 +0200 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2012-05-22 10:30:58 +0100 | 
| commit | 7eb3b2c83dccddec34787adf67c10c82331d262e (patch) | |
| tree | e0ed94761ce60de62328f818c57480f0ee753441 /drivers/gpu/drm/drm_irq.c | |
| parent | af437cfd355275a62e45ce8281ef5cc57c953bbc (diff) | |
| download | olio-linux-3.10-7eb3b2c83dccddec34787adf67c10c82331d262e.tar.xz olio-linux-3.10-7eb3b2c83dccddec34787adf67c10c82331d262e.zip  | |
drm: Delete the vblank timer synchronously at cleanup time
A race condition exists in drm_vblank_cleanup() if the vblank disable
timer callback runs after freeing the memory that its callback function
tries to access. Fix this by deleting the timer synchronously.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_irq.c')
| -rw-r--r-- | drivers/gpu/drm/drm_irq.c | 2 | 
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index c869436e238..acd2cb45a51 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -189,7 +189,7 @@ void drm_vblank_cleanup(struct drm_device *dev)  	if (dev->num_crtcs == 0)  		return; -	del_timer(&dev->vblank_disable_timer); +	del_timer_sync(&dev->vblank_disable_timer);  	vblank_disable_fn((unsigned long)dev);  |