All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe/oa: Fix sync entry leak on OA config emit failure
@ 2026-07-15  2:33 Linmao Li
  2026-07-15  2:40 ` ✓ CI.KUnit: success for " Patchwork
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Linmao Li @ 2026-07-15  2:33 UTC (permalink / raw)
  To: Ashutosh Dixit, Matthew Brost, Thomas Hellström,
	Rodrigo Vivi
  Cc: David Airlie, Simona Vetter, José Roberto de Souza,
	Umesh Nerlige Ramappa, intel-xe, dri-devel, linux-kernel,
	Linmao Li

xe_oa_emit_oa_config() releases the sync entries and the syncs array
only on its success path. When it fails before the point of no return
(fence allocation, config buffer allocation or batch submission), it
returns without touching stream->syncs.

The stream open path handles such failures in the caller, but
xe_oa_config_locked() propagates the error without any cleanup, so the
syncs array and the fence references held by the parsed entries are
leaked. The next config ioctl overwrites stream->syncs, making the
memory unreachable for good.

Clean up the parsed syncs when xe_oa_emit_oa_config() fails, matching
the cleanup done by the stream open error path, and reset the stream
sync state so it does not point at freed entries.

Fixes: 9920c8b88c5c ("drm/xe/oa: Add syncs support to OA config ioctl")
Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
---
 drivers/gpu/drm/xe/xe_oa.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 2dce6a47202c..b1ce312ea97a 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -1594,6 +1594,12 @@ static long xe_oa_config_locked(struct xe_oa_stream *stream, u64 arg)
 		config = xchg(&stream->oa_config, config);
 		drm_dbg(&stream->oa->xe->drm, "changed to oa config uuid=%s\n",
 			stream->oa_config->uuid);
+	} else {
+		while (param.num_syncs--)
+			xe_sync_entry_cleanup(&param.syncs[param.num_syncs]);
+		kfree(param.syncs);
+		stream->num_syncs = 0;
+		stream->syncs = NULL;
 	}
 
 err_config_put:
-- 
2.25.1


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

end of thread, other threads:[~2026-07-31  3:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15  2:33 [PATCH] drm/xe/oa: Fix sync entry leak on OA config emit failure Linmao Li
2026-07-15  2:40 ` ✓ CI.KUnit: success for " Patchwork
2026-07-15  3:15 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-15  6:22 ` ✓ Xe.CI.FULL: " Patchwork
2026-07-30 22:20 ` [PATCH] " Dixit, Ashutosh
2026-07-31  1:19 ` [PATCH v2] " Linmao Li
2026-07-31  1:27 ` ✓ CI.KUnit: success for drm/xe/oa: Fix sync entry leak on OA config emit failure (rev2) Patchwork
2026-07-31  2:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-31  3:04 ` ✓ Xe.CI.FULL: " Patchwork

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.