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

Commit 7eb3b2c8 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Dave Airlie
Browse files

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent af437cfd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);