All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/gem-atomic-helper: fix fence leak on dma_fence_chain_alloc() failure
@ 2026-11-07 16:53 Chengyu Liu
  2026-11-09  9:50 ` sashiko-bot
  2026-11-13 14:04 ` Ville Syrjälä
  0 siblings, 2 replies; 5+ messages in thread
From: Chengyu Liu @ 2026-11-07 16:53 UTC (permalink / raw)
  To: dri-devel; +Cc: maarten.lankhorst, mripard, tzimmermann, Chengyu Liu

In drm_gem_plane_helper_prepare_fb(), when both "new" (the plane's GEM
singleton fence) and "fence" (explicit or previous plane's) exist, they
are wrapped in a freshly allocated chain.  If dma_fence_chain_alloc()
fails, the error path runs before dma_fence_chain_init() adopts "new",
and error: only puts "fence" - leaking one fence reference per failure.

Put "new" in the allocation-failure branch.

Found by static analysis.

Signed-off-by: Chengyu Liu <lui2012qwq@gmail.com>
---
 drivers/gpu/drm/drm_gem_atomic_helper.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c b/drivers/gpu/drm/drm_gem_atomic_helper.c
index abef865c5f2c..1e484f26ab31 100644
--- a/drivers/gpu/drm/drm_gem_atomic_helper.c
+++ b/drivers/gpu/drm/drm_gem_atomic_helper.c
@@ -153,6 +153,7 @@
 		if (new && fence) {
 			struct dma_fence_chain *chain = dma_fence_chain_alloc();
 
 			if (!chain) {
+				dma_fence_put(new);
 				ret = -ENOMEM;
 				goto error;
 			}
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-11-13 15:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-07 16:53 [PATCH] drm/gem-atomic-helper: fix fence leak on dma_fence_chain_alloc() failure Chengyu Liu
2026-11-09  9:50 ` sashiko-bot
2026-11-12 15:52   ` Chengyu Liu
2026-11-13 14:04 ` Ville Syrjälä
2026-11-13 15:55   ` Chengyu Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.