diff options
| author | Thadeu Lima de Souza Cascardo <cascardo@igalia.com> | 2026-07-27 17:45:49 -0300 |
|---|---|---|
| committer | Melissa Wen <melissa.srw@gmail.com> | 2026-08-26 05:48:32 -0300 |
| commit | 4d4be202165e832d74849b4a68e289a2a377039c (patch) | |
| tree | 6c4046ef56190f6c24c699bf93f69d482b532a09 /scripts/objdiff | |
| parent | d32b08284f44c20edb2ea3f64ba0a6a165036fb2 (diff) | |
| download | linux-next-4d4be202165e832d74849b4a68e289a2a377039c.tar.gz linux-next-4d4be202165e832d74849b4a68e289a2a377039c.zip | |
drm: Fix drm_crtc_commit leak if signaled when PAGE_FLIP_EVENT is used
Commit 1c6ceeee6ebb ("drm/atomic: Fix memleak on ERESTARTSYS during
non-blocking commits") fixed a very similar issue when the event was
allocated by drm_atomic_helper_setup_commit() itself.
However, if the event is allocated in prepare_signaling(), it will also be
set to NULL in complete_signaling(), which prevents drm_crtc_commit from
being put in __drm_atomic_helper_crtc_destroy_state().
Dropping the reference when the event is set to NULL at
complete_signaling() fixes the leak.
The leak can be reproduced by sending a signal to the thread using
DRM_MODE_PAGE_FLIP_EVENT and using a sw_sync fence to cause the atomic
ioctl to block at drm_atomic_helper_wait_for_fences(). It happened both
with amdgpu and vkms.
Fixes: 24835e442f28 ("drm: reference count event->completion")
Cc: stable@vger.kernel.org
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <mwen@igalia.com>
Link: https://patch.msgid.link/20260727-drm_crtc_atomic_commit_leak-v1-1-23d9948a9d7c@igalia.com
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
