File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -532,15 +532,18 @@ int gma_crtc_page_flip(struct drm_crtc *crtc,
532
532
WARN_ON (drm_crtc_vblank_get (crtc ) != 0 );
533
533
534
534
gma_crtc -> page_flip_event = event ;
535
+ spin_unlock_irqrestore (& dev -> event_lock , flags );
535
536
536
537
/* Call this locked if we want an event at vblank interrupt. */
537
538
ret = crtc_funcs -> mode_set_base (crtc , crtc -> x , crtc -> y , old_fb );
538
539
if (ret ) {
539
- gma_crtc -> page_flip_event = NULL ;
540
- drm_crtc_vblank_put (crtc );
540
+ spin_lock_irqsave (& dev -> event_lock , flags );
541
+ if (gma_crtc -> page_flip_event ) {
542
+ gma_crtc -> page_flip_event = NULL ;
543
+ drm_crtc_vblank_put (crtc );
544
+ }
545
+ spin_unlock_irqrestore (& dev -> event_lock , flags );
541
546
}
542
-
543
- spin_unlock_irqrestore (& dev -> event_lock , flags );
544
547
} else {
545
548
ret = crtc_funcs -> mode_set_base (crtc , crtc -> x , crtc -> y , old_fb );
546
549
}
You can’t perform that action at this time.
0 commit comments