diff options
author | Ville Syrjälä <[email protected]> | 2022-10-03 14:32:47 +0300 |
---|---|---|
committer | Ville Syrjälä <[email protected]> | 2022-10-03 18:50:14 +0300 |
commit | 9519c86523ea136e981ceff30489cdb7b2ecae08 (patch) | |
tree | 9bd221d65faa4b21d4c353ffcf919b865ad96ac5 | |
parent | adc831bfc8852034d0834a5a8bf7e35e2faeb8b2 (diff) |
drm/i915: Fix locking in DRRS debugfs
Grab the crtc mutex so that looking at the crtc state is
actually safe.
Reviewed-by: Jani Nikula <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_drrs.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c index a5d6682475d1..2b94a62ef65a 100644 --- a/drivers/gpu/drm/i915/display/intel_drrs.c +++ b/drivers/gpu/drm/i915/display/intel_drrs.c @@ -301,8 +301,14 @@ void intel_crtc_drrs_init(struct intel_crtc *crtc) static int intel_drrs_debugfs_status_show(struct seq_file *m, void *unused) { struct intel_crtc *crtc = m->private; - const struct intel_crtc_state *crtc_state = - to_intel_crtc_state(crtc->base.state); + const struct intel_crtc_state *crtc_state; + int ret; + + ret = drm_modeset_lock_single_interruptible(&crtc->base.mutex); + if (ret) + return ret; + + crtc_state = to_intel_crtc_state(crtc->base.state); mutex_lock(&crtc->drrs.mutex); @@ -321,6 +327,8 @@ static int intel_drrs_debugfs_status_show(struct seq_file *m, void *unused) mutex_unlock(&crtc->drrs.mutex); + drm_modeset_unlock(&crtc->base.mutex); + return 0; } |