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

Commit 85473328 authored by Imre Deak's avatar Imre Deak Committed by Inki Dae
Browse files

drm/exynos: hold event_lock while accessing pageflip_event_list

parent fdd66e06
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -236,16 +236,21 @@ static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
			goto out;
		}

		spin_lock_irq(&dev->event_lock);
		list_add_tail(&event->base.link,
				&dev_priv->pageflip_event_list);
		spin_unlock_irq(&dev->event_lock);

		crtc->fb = fb;
		ret = exynos_drm_crtc_mode_set_base(crtc, crtc->x, crtc->y,
						    NULL);
		if (ret) {
			crtc->fb = old_fb;

			spin_lock_irq(&dev->event_lock);
			drm_vblank_put(dev, exynos_crtc->pipe);
			list_del(&event->base.link);
			spin_unlock_irq(&dev->event_lock);

			goto out;
		}