summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2023-09-20 17:03:38 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2023-10-03 16:01:03 +0300
commit653e2486450a0d973d15f6ae870cfdfad1b8fe17 (patch)
treedae527fb62b5f3341c521dc5189af1a81872625c
parentdb0f246c39be6971cdaa2b9326f7cb6cdfd8f11b (diff)
downloadlinux-653e2486450a0d973d15f6ae870cfdfad1b8fe17.tar.xz
drm/vblank: Warn when silently cancelling vblank works
Silently cancelling vblank works is a bit rude, especially if said works do any resource management (eg. free memory). WARN if we ever hit this. TODO: Maybe drm_crtc_vblank_off() should wait for any pending work to reach its target vblank before actually doing anything drastic? Cc: Lyude Paul <lyude@redhat.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230920140339.28322-2-ville.syrjala@linux.intel.com Reviewed-by: Lyude Paul <lyude@redhat.com>
-rw-r--r--drivers/gpu/drm/drm_vblank_work.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c
index bd481fdd6b87..43cd5c0f4f6f 100644
--- a/drivers/gpu/drm/drm_vblank_work.c
+++ b/drivers/gpu/drm/drm_vblank_work.c
@@ -73,6 +73,9 @@ void drm_vblank_cancel_pending_works(struct drm_vblank_crtc *vblank)
assert_spin_locked(&vblank->dev->event_lock);
+ drm_WARN_ONCE(vblank->dev, !list_empty(&vblank->pending_work),
+ "Cancelling pending vblank works!\n");
+
list_for_each_entry_safe(work, next, &vblank->pending_work, node) {
list_del_init(&work->node);
drm_vblank_put(vblank->dev, vblank->pipe);