@@ -16,7 +16,7 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer)
1616 struct drm_crtc * crtc = & output -> crtc ;
1717 struct vkms_crtc_state * state ;
1818 u64 ret_overrun ;
19- bool ret , fence_cookie , composer_enabled ;
19+ bool ret , fence_cookie ;
2020
2121 fence_cookie = dma_fence_begin_signalling ();
2222
@@ -25,15 +25,15 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer)
2525 if (ret_overrun != 1 )
2626 pr_warn ("%s: vblank timer overrun\n" , __func__ );
2727
28+ spin_lock (& output -> lock );
2829 ret = drm_crtc_handle_vblank (crtc );
2930 if (!ret )
3031 DRM_ERROR ("vkms failure on handling vblank" );
3132
3233 state = output -> composer_state ;
33- composer_enabled = output -> composer_enabled ;
34- mutex_unlock (& output -> enabled_lock );
34+ spin_unlock (& output -> lock );
3535
36- if (state && composer_enabled ) {
36+ if (state && output -> composer_enabled ) {
3737 u64 frame = drm_crtc_accurate_vblank_count (crtc );
3838
3939 /* update frame_start only if a queued vkms_composer_worker()
@@ -295,7 +295,6 @@ int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
295295
296296 spin_lock_init (& vkms_out -> lock );
297297 spin_lock_init (& vkms_out -> composer_lock );
298- mutex_init (& vkms_out -> enabled_lock );
299298
300299 vkms_out -> composer_workq = alloc_ordered_workqueue ("vkms_composer" , 0 );
301300 if (!vkms_out -> composer_workq )
0 commit comments