Commit 4f332396 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-intel-fixes-2021-08-26' of...

Merge tag 'drm-intel-fixes-2021-08-26' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes

- Fix syncmap memory leak
- Drop redundant display port debug print
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/YSfSeHbyS5wBZtNJ@intel.com
parents e22ce8eb 71de496c
...@@ -3850,23 +3850,18 @@ static void intel_dp_check_device_service_irq(struct intel_dp *intel_dp) ...@@ -3850,23 +3850,18 @@ static void intel_dp_check_device_service_irq(struct intel_dp *intel_dp)
static void intel_dp_check_link_service_irq(struct intel_dp *intel_dp) static void intel_dp_check_link_service_irq(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 val; u8 val;
if (intel_dp->dpcd[DP_DPCD_REV] < 0x11) if (intel_dp->dpcd[DP_DPCD_REV] < 0x11)
return; return;
if (drm_dp_dpcd_readb(&intel_dp->aux, if (drm_dp_dpcd_readb(&intel_dp->aux,
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, &val) != 1 || !val) { DP_LINK_SERVICE_IRQ_VECTOR_ESI0, &val) != 1 || !val)
drm_dbg_kms(&i915->drm, "Error in reading link service irq vector\n");
return; return;
}
if (drm_dp_dpcd_writeb(&intel_dp->aux, if (drm_dp_dpcd_writeb(&intel_dp->aux,
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, val) != 1) { DP_LINK_SERVICE_IRQ_VECTOR_ESI0, val) != 1)
drm_dbg_kms(&i915->drm, "Error in writing link service irq vector\n");
return; return;
}
if (val & HDMI_LINK_STATUS_CHANGED) if (val & HDMI_LINK_STATUS_CHANGED)
intel_dp_handle_hdmi_link_status_change(intel_dp); intel_dp_handle_hdmi_link_status_change(intel_dp);
......
...@@ -127,6 +127,15 @@ static void intel_timeline_fini(struct rcu_head *rcu) ...@@ -127,6 +127,15 @@ static void intel_timeline_fini(struct rcu_head *rcu)
i915_vma_put(timeline->hwsp_ggtt); i915_vma_put(timeline->hwsp_ggtt);
i915_active_fini(&timeline->active); i915_active_fini(&timeline->active);
/*
* A small race exists between intel_gt_retire_requests_timeout and
* intel_timeline_exit which could result in the syncmap not getting
* free'd. Rather than work to hard to seal this race, simply cleanup
* the syncmap on fini.
*/
i915_syncmap_free(&timeline->sync);
kfree(timeline); kfree(timeline);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment