]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915: move uapi.event outside spinlock in intel_crtc_vblank_work
authorLuca Coelho <luciano.coelho@intel.com>
Tue, 28 May 2024 11:29:01 +0000 (14:29 +0300)
committerSuraj Kandpal <suraj.kandpal@intel.com>
Thu, 30 May 2024 10:38:05 +0000 (16:08 +0530)
In intel_crtc_vblank_work(), we access uapi.event before grabbing the
event_lock spinlock, but modify it inside the spinlock block.  This
causes some static analyzers to get confused and issue a warning.

The uapi.event value is not protected by the event_lock, so we can
safely move it out of the protected block to prevent false positives.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240528112901.476068-3-luciano.coelho@intel.com
drivers/gpu/drm/i915/display/intel_crtc.c

index ca6dc1dc56c870eff93de8df249f205bcc9e0ab4..bf6e74e99f5c5c2206db56b7e810c48ae295151d 100644 (file)
@@ -411,8 +411,8 @@ static void intel_crtc_vblank_work(struct kthread_work *base)
        if (crtc_state->uapi.event) {
                spin_lock_irq(&crtc->base.dev->event_lock);
                drm_crtc_send_vblank_event(&crtc->base, crtc_state->uapi.event);
-               crtc_state->uapi.event = NULL;
                spin_unlock_irq(&crtc->base.dev->event_lock);
+               crtc_state->uapi.event = NULL;
        }
 
        trace_intel_crtc_vblank_work_end(crtc);