- Fix syncmap memory leak

- Drop redundant display port debug print
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAmEn0cUACgkQ+mJfZA7r
 E8pAiAf/bKjYJ4ujXOrjPYpiuyVkv/CGmWY3swXimb2PXmaxxQ5NWZsezjwR4NQI
 EaCu60fwHtXgc/QTPCbWimMA4/WAO/LcJ1s1E5O2+p6AbAVfQ5K3b8jsAX6hnA3V
 ltPcdKCA0RxwfLYlZ648DcV+jEqDDbRDIL7lL8CAHD/GxZG/JysjpodukUTtm6LX
 1rlYd8o7RV16yfFKNRhgwBOyKfff6irfP5luo3U7MuHYj3I/dpmRUTqxxevwvOxd
 ZJtldXcDot8kYRG++yHy6KWMfktp4RlB6oPX3l3ONZuXmAFH9CYZGefFd3BrqUVp
 E2uBdFDqv97TzwxspLo1JypcFwyzJA==
 =7UO+
 -----END PGP SIGNATURE-----

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: Dave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/YSfSeHbyS5wBZtNJ@intel.com
This commit is contained in:
Dave Airlie 2021-08-27 10:13:37 +10:00
commit 4f33239615
2 changed files with 11 additions and 7 deletions

View file

@ -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)
{
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 val;
if (intel_dp->dpcd[DP_DPCD_REV] < 0x11)
return;
if (drm_dp_dpcd_readb(&intel_dp->aux,
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, &val) != 1 || !val) {
drm_dbg_kms(&i915->drm, "Error in reading link service irq vector\n");
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, &val) != 1 || !val)
return;
}
if (drm_dp_dpcd_writeb(&intel_dp->aux,
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, val) != 1) {
drm_dbg_kms(&i915->drm, "Error in writing link service irq vector\n");
DP_LINK_SERVICE_IRQ_VECTOR_ESI0, val) != 1)
return;
}
if (val & HDMI_LINK_STATUS_CHANGED)
intel_dp_handle_hdmi_link_status_change(intel_dp);

View file

@ -127,6 +127,15 @@ static void intel_timeline_fini(struct rcu_head *rcu)
i915_vma_put(timeline->hwsp_ggtt);
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);
}