From f5b9f91b6894bfc1a3631dc2a177d29452c0d69c Mon Sep 17 00:00:00 2001 From: Stanislav Lisovskiy Date: Tue, 6 Nov 2018 10:35:59 +0200 Subject: [PATCH] If we assign intel_dp->is_mst = true before setting mgr->primary_mst, this might result in a NULL pointer access if preemption happens in between. --- drivers/gpu/drm/i915/intel_dp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index b39b4bda8e40..d9b41d790da8 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -4129,6 +4129,7 @@ intel_dp_configure_mst(struct intel_dp *intel_dp) struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; bool sink_can_mst = intel_dp_sink_can_mst(intel_dp); + bool is_mst; DRM_DEBUG_KMS("MST support? port %c: %s, sink: %s, modparam: %s\n", port_name(encoder->port), yesno(intel_dp->can_mst), @@ -4137,11 +4138,13 @@ intel_dp_configure_mst(struct intel_dp *intel_dp) if (!intel_dp->can_mst) return; - intel_dp->is_mst = sink_can_mst && + is_mst = sink_can_mst && i915_modparams.enable_dp_mst; drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, - intel_dp->is_mst); + is_mst); + + intel_dp->is_mst = is_mst; } static bool -- 2.17.1