linux-stable/include/drm
Leo (Sunpeng) Li 54f809cfbd drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits
During a non-blocking commit, it is possible to return before the
commit_tail work is queued (-ERESTARTSYS, for example).

Since a reference on the crtc commit object is obtained for the pending
vblank event when preparing the commit, the above situation will leave
us with an extra reference.

Therefore, if the commit_tail worker has not consumed the event at the
end of a commit, release it's reference.

Changes since v1:
- Also check for state->event->base.completion being set, to
  handle the case where stall_checks() fails in setup_crtc_commit().
Changes since v2:
- Add a flag to drm_crtc_commit, to prevent dereferencing a freed event.
  i915 may unreference the state in a worker.

Fixes: 24835e442f ("drm: reference count event->completion")
Cc: <stable@vger.kernel.org> # v4.11+
Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com> #v1
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180117115108.29608-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Sean Paul <seanpaul@chromium.org>
2018-02-01 11:14:06 +01:00
..
bridge drm/bridge/sii8620: add remote control support 2017-10-11 13:14:25 +02:00
i2c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tinydrm
ttm drm/ttm: fix populate_and_map() functions once more 2017-11-29 14:42:35 -05:00
amd_asic_type.h drm/amdgpu Moving amdgpu asic types to a separate file 2017-10-18 10:56:27 -04:00
ati_pcigart.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_agpsupport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_atomic.h drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits 2018-02-01 11:14:06 +01:00
drm_atomic_helper.h
drm_auth.h drm: Add drm_object lease infrastructure [v5] 2017-10-25 16:31:29 +10:00
drm_blend.h
drm_bridge.h
drm_cache.h
drm_color_mgmt.h
drm_connector.h drm: rework delayed connector cleanup in connector_iter 2017-12-13 22:59:00 +01:00
drm_crtc.h drm/mode_object: fix documentation for object lookups. 2017-11-10 13:50:47 +10:00
drm_crtc_helper.h
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h
drm_displayid.h
drm_dp_dual_mode_helper.h
drm_dp_helper.h Merge remote-tracking branch 'pfdo/drm-next' into drm-next 2017-10-17 10:53:43 +10:00
drm_dp_mst_helper.h drm/dp/mst: Sideband message transaction to power up/down nodes 2017-09-11 16:03:57 +03:00
drm_drv.h drm: vblank: use ktime_t instead of timeval 2017-10-13 08:34:46 +10:00
drm_edid.h drm: Update edid-derived drm_display_info fields at edid property set [v2] 2017-12-13 14:51:37 +01:00
drm_encoder.h drm/mode_object: fix documentation for object lookups. 2017-11-10 13:50:47 +10:00
drm_encoder_slave.h
drm_fb_cma_helper.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
drm_fb_helper.h
drm_file.h
drm_fixed.h
drm_flip_work.h
drm_fourcc.h
drm_framebuffer.h drm: Pass struct drm_file * to __drm_mode_object_find [v2] 2017-10-12 10:03:04 +10:00
drm_gem.h
drm_gem_cma_helper.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_gem_framebuffer_helper.h drm/gem-fb-helper: Use debug message on gem lookup failure 2017-09-16 14:06:53 +02:00
drm_global.h
drm_hashtab.h
drm_ioctl.h
drm_irq.h
drm_lease.h drm: Add four ioctls for managing drm mode object leases [v7] 2017-10-25 16:31:30 +10:00
drm_legacy.h
drm_mipi_dsi.h
drm_mm.h lib/interval_tree: fast overlap detection 2017-09-08 18:26:49 -07:00
drm_mode_config.h drm: rework delayed connector cleanup in connector_iter 2017-12-13 22:59:00 +01:00
drm_mode_object.h drm: Add four ioctls for managing drm mode object leases [v7] 2017-10-25 16:31:30 +10:00
drm_modes.h
drm_modeset_helper.h
drm_modeset_helper_vtables.h drm/vtables: Fix typo 2017-09-01 19:50:24 +02:00
drm_modeset_lock.h drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2. 2017-09-13 09:50:52 +02:00
drm_of.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
drm_os_linux.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_panel.h
drm_pci.h
drm_pciids.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_plane.h drm/mode_object: fix documentation for object lookups. 2017-11-10 13:50:47 +10:00
drm_plane_helper.h
drm_prime.h
drm_print.h
drm_property.h drm/mode_object: fix documentation for object lookups. 2017-11-10 13:50:47 +10:00
drm_rect.h
drm_scdc_helper.h
drm_simple_kms_helper.h
drm_syncobj.h drm/syncobj: add a new helper drm_syncobj_get_fd 2017-10-06 16:47:53 -04:00
drm_sysfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drm_vblank.h drm: Add CRTC_GET_SEQUENCE and CRTC_QUEUE_SEQUENCE ioctls [v3] 2017-10-23 11:15:03 +10:00
drm_vma_manager.h
drmP.h drm: Add new LEASE debug level 2017-10-25 16:31:29 +10:00
gma_drm.h
i915_component.h
i915_drm.h
i915_pciids.h drm/i915/kbl: Change a KBL pci id to GT2 from GT1.5 2017-09-21 06:22:29 -07:00
intel-gtt.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel_lpe_audio.h