DF-1411 / fix.diff
diff --git a/sys/dev/drm/i915/intel_panel.c b/sys/dev/drm/i915/intel_panel.c --- a/sys/dev/drm/i915/intel_panel.c +++ b/sys/dev/drm/i915/intel_panel.c @@ -1812,7 +1812,6 @@ sysctl_backlight_handler(SYSCTL_HANDLER_ARGS) { struct intel_connector *connector = arg1; - const struct drm_connector_state *conn_state = connector->base.state; struct drm_device *dev = connector->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; struct intel_panel *panel = &connector->panel; @@ -1832,7 +1831,10 @@ } if (val != user_level && val >= 0 && val <= max_brightness) { + const struct drm_connector_state *conn_state; + drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); + conn_state = connector->base.state; intel_panel_set_backlight(conn_state, val, max_brightness); drm_modeset_unlock(&dev->mode_config.connection_mutex); } |