提交 f0d3dad3 编写于 作者: C Chris Wilson 提交者: Daniel Vetter

drm/i915: Wrap -EIO send-vblank event for failed pageflip in spinlock

drm_send_vblank_event() demands that we hold the event spinlock whilst
calling it, so do so.
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
[danvet: Fix the double lock as requested by Chris.]
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 1d1ef21d
...@@ -10084,8 +10084,11 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, ...@@ -10084,8 +10084,11 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
out_hang: out_hang:
intel_crtc_wait_for_pending_flips(crtc); intel_crtc_wait_for_pending_flips(crtc);
ret = intel_pipe_set_base(crtc, crtc->x, crtc->y, fb); ret = intel_pipe_set_base(crtc, crtc->x, crtc->y, fb);
if (ret == 0 && event) if (ret == 0 && event) {
spin_lock_irqsave(&dev->event_lock, flags);
drm_send_vblank_event(dev, pipe, event); drm_send_vblank_event(dev, pipe, event);
spin_unlock_irqrestore(&dev->event_lock, flags);
}
} }
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册