Move the locking for armada_drm_vbl_event_remove() into itself, which makes this function symmetrical with armada_drm_vbl_event_add(). Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> --- drivers/gpu/drm/armada/armada_crtc.c | 2 ++ drivers/gpu/drm/armada/armada_overlay.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c index 89decc5bdcd4..e3e6f81593c0 100644 --- a/drivers/gpu/drm/armada/armada_crtc.c +++ b/drivers/gpu/drm/armada/armada_crtc.c @@ -211,10 +211,12 @@ void armada_drm_vbl_event_add(struct armada_crtc *dcrtc, void armada_drm_vbl_event_remove(struct armada_crtc *dcrtc, struct armada_vbl_event *evt) { + spin_lock_irq(&dcrtc->irq_lock); if (!list_empty(&evt->node)) { list_del_init(&evt->node); drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); } + spin_unlock_irq(&dcrtc->irq_lock); } static void armada_drm_vbl_event_run(struct armada_crtc *dcrtc) diff --git a/drivers/gpu/drm/armada/armada_overlay.c b/drivers/gpu/drm/armada/armada_overlay.c index e7e020d4372a..6ec42eb85981 100644 --- a/drivers/gpu/drm/armada/armada_overlay.c +++ b/drivers/gpu/drm/armada/armada_overlay.c @@ -273,9 +273,7 @@ static int armada_ovl_plane_disable(struct drm_plane *plane) dcrtc = drm_to_armada_crtc(dplane->base.base.crtc); dcrtc->plane = NULL; - spin_lock_irq(&dcrtc->irq_lock); armada_drm_vbl_event_remove(dcrtc, &dplane->vbl.update); - spin_unlock_irq(&dcrtc->irq_lock); dplane->ctrl0 = 0; -- 2.1.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel