[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aAAZ6iIUtYcfpcdm@blossom>
Date: Wed, 16 Apr 2025 16:58:18 -0400
From: Alyssa Rosenzweig <alyssa@...enzweig.io>
To: j@...nau.net
Cc: Sasha Finkelstein <fnkl.kernel@...il.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Neal Gompa <neal@...pa.dev>, Dmitry Baryshkov <lumag@...nel.org>,
dri-devel@...ts.freedesktop.org, asahi@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/4] drm: adp: Handle drm_crtc_vblank_get() errors
> - spin_lock_irqsave(&crtc->dev->event_lock, flags);
> if (crtc->state->event) {
> - drm_crtc_vblank_get(crtc);
> - adp->event = crtc->state->event;
> + spin_lock_irqsave(&crtc->dev->event_lock, flags);
> +
> + if (drm_crtc_vblank_get(crtc) != 0)
> + drm_crtc_send_vblank_event(crtc, crtc->state->event);
> + else
> + adp->event = crtc->state->event;
> +
> + spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
> }
> crtc->state->event = NULL;
> - spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
Kind of confused about
> crtc->state->event = NULL;
now being out of the lock. Should we set to NULL in the if, since
if we don't take the if, we know event is already NULL? Or should we
hold the lock for the whole time, the way the code did before your
change? I'm not sure between the two, but the in-between here smells
wrong.
Powered by blists - more mailing lists