]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/xe/guc: Explicitly exit CT safe mode on unwind
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Thu, 12 Jun 2025 22:09:37 +0000 (00:09 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 24 Jun 2025 20:27:12 +0000 (22:27 +0200)
commit2ddbb73ec20b98e70a5200cb85deade22ccea2ec
tree8ecdd51c8eb125af7c6173f342991dd8d7b8045b
parent89d2835c3680ab1938e22ad81b1c9f8c686bd391
drm/xe/guc: Explicitly exit CT safe mode on unwind

During driver probe we might be briefly using CT safe mode, which
is based on a delayed work, but usually we are able to stop this
once we have IRQ fully operational.  However, if we abort the probe
quite early then during unwind we might try to destroy the workqueue
while there is still a pending delayed work that attempts to restart
itself which triggers a WARN.

This was recently observed during unsuccessful VF initialization:

 [ ] xe 0000:00:02.1: probe with driver xe failed with error -62
 [ ] ------------[ cut here ]------------
 [ ] workqueue: cannot queue safe_mode_worker_func [xe] on wq xe-g2h-wq
 [ ] WARNING: CPU: 9 PID: 0 at kernel/workqueue.c:2257 __queue_work+0x287/0x710
 [ ] RIP: 0010:__queue_work+0x287/0x710
 [ ] Call Trace:
 [ ]  delayed_work_timer_fn+0x19/0x30
 [ ]  call_timer_fn+0xa1/0x2a0

Exit the CT safe mode on unwind to avoid that warning.

Fixes: 09b286950f29 ("drm/xe/guc: Allow CTB G2H processing without G2H IRQ")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250612220937.857-3-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_guc_ct.c