]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/xe/guc: Fix resource leak in xe_guc_ct_init_noalloc()
authorShuicheng Lin <shuicheng.lin@intel.com>
Mon, 10 Nov 2025 18:45:23 +0000 (18:45 +0000)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 25 Nov 2025 19:53:23 +0000 (11:53 -0800)
commit76555b1eb278da420b6e4d26714319a7a4460e7b
treec14de80ea46720befa73e384313942dee0f1d989
parentac3fd01e4c1efce8f2c054cdeb2ddd2fc0fb150d
drm/xe/guc: Fix resource leak in xe_guc_ct_init_noalloc()

xe_guc_ct_init_noalloc() allocates the CT workqueue and other helpers
before it tries to initialize ct->lock. If drmm_mutex_init() fails
we currently bail out without releasing those resources because the
guc_ct_fini() hasn’t been registered yet.

Since destroy_workqueue() in guc_ct_fini() may flush the workqueue, which
in turn can take the ct lock, the initialization sequence is restructured
to first initialize the ct->lock, then set up all CT state, and finally
register guc_ct_fini().

v2: guc_ct_fini() does take ct lock. (Matt)
v3: move primelockdep() together with drmm_mutex_init(). (Lucas)

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patch.msgid.link/20251110184522.1581001-2-shuicheng.lin@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit 2e4ad5b0667244f496783c58de0995b9562d3344)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_guc_ct.c