]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/xe/queue: Call fini on exec queue creation fail
authorTomasz Lis <tomasz.lis@intel.com>
Thu, 26 Feb 2026 21:26:58 +0000 (22:26 +0100)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Fri, 27 Feb 2026 17:02:03 +0000 (18:02 +0100)
commit393e5fea6f7d7054abc2c3d97a4cfe8306cd6079
tree655cc8cdc4f1ae7ca43dbe47a6ce922cfcafa49b
parent223b2f51ba6bbf70dbebdb69b93b66b074289e04
drm/xe/queue: Call fini on exec queue creation fail

Every call to queue init should have a corresponding fini call.
Skipping this would mean skipping removal of the queue from GuC list
(which is part of guc_id allocation). A damaged queue stored in
exec_queue_lookup list would lead to invalid memory reference,
sooner or later.

Call fini to free guc_id. This must be done before any internal
LRCs are freed.

Since the finalization with this extra call became very similar to
__xe_exec_queue_fini(), reuse that. To make this reuse possible,
alter xe_lrc_put() so it can survive NULL parameters, like other
similar functions.

v2: Reuse _xe_exec_queue_fini(). Make xe_lrc_put() aware of NULLs.

Fixes: 3c1fa4aa60b1 ("drm/xe: Move queue init before LRC creation")
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com> (v1)
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patch.msgid.link/20260226212701.2937065-2-tomasz.lis@intel.com
drivers/gpu/drm/xe/xe_exec_queue.c
drivers/gpu/drm/xe/xe_lrc.h