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>
This commit is contained in:
		
							parent
							
								
									af437cfd35
								
							
						
					
					
						commit
						7eb3b2c83d
					
				| @ -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); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user