Skip to content

Commit 4dc7dca

Browse files
author
Jyri Sarha
committed
drm/tilcdc: WARN if CRTC is touched without CRTC lock
WARN if CRTC is touched without CRTC lock. The crtc functions should not be called simultaneously from multiple threads. Having the DRM CRTC lock should take care of that. Signed-off-by: Jyri Sarha <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]>
1 parent 9193168 commit 4dc7dca

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/gpu/drm/tilcdc/tilcdc_crtc.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ static void tilcdc_crtc_enable(struct drm_crtc *crtc)
153153
struct drm_device *dev = crtc->dev;
154154
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
155155

156+
WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
157+
156158
if (tilcdc_crtc->enabled)
157159
return;
158160

@@ -177,6 +179,8 @@ void tilcdc_crtc_disable(struct drm_crtc *crtc)
177179
struct drm_device *dev = crtc->dev;
178180
struct tilcdc_drm_private *priv = dev->dev_private;
179181

182+
WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
183+
180184
if (!tilcdc_crtc->enabled)
181185
return;
182186

@@ -249,6 +253,8 @@ int tilcdc_crtc_update_fb(struct drm_crtc *crtc,
249253
struct drm_device *dev = crtc->dev;
250254
unsigned long flags;
251255

256+
WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
257+
252258
if (tilcdc_crtc->event) {
253259
dev_err(dev->dev, "already pending page flip!\n");
254260
return -EBUSY;
@@ -353,6 +359,8 @@ static void tilcdc_crtc_mode_set_nofb(struct drm_crtc *crtc)
353359
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
354360
struct drm_framebuffer *fb = crtc->primary->state->fb;
355361

362+
WARN_ON(!drm_modeset_is_locked(&crtc->mutex));
363+
356364
if (WARN_ON(!info))
357365
return;
358366

0 commit comments

Comments
 (0)