Skip to content

Commit d848203

Browse files
Thomas Hellströmrodrigovivi
authored andcommitted
drm/xe: Allow the pm notifier to continue on failure
Its actions are opportunistic anyway and will be completed on device suspend. Marking as a fix to simplify backporting of the fix that follows in the series. v2: - Keep the runtime pm reference over suspend / hibernate and document why. (Matt Auld, Rodrigo Vivi): Fixes: c6a4d46 ("drm/xe: evict user memory in PM notifier") Cc: Matthew Auld <matthew.auld@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: <stable@vger.kernel.org> # v6.16+ Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://lore.kernel.org/r/20250904160715.2613-3-thomas.hellstrom@linux.intel.com (cherry picked from commit ebd546f) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
1 parent 5c87fee commit d848203

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

drivers/gpu/drm/xe/xe_pm.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -301,17 +301,17 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
301301
case PM_SUSPEND_PREPARE:
302302
xe_pm_runtime_get(xe);
303303
err = xe_bo_evict_all_user(xe);
304-
if (err) {
304+
if (err)
305305
drm_dbg(&xe->drm, "Notifier evict user failed (%d)\n", err);
306-
xe_pm_runtime_put(xe);
307-
break;
308-
}
309306

310307
err = xe_bo_notifier_prepare_all_pinned(xe);
311-
if (err) {
308+
if (err)
312309
drm_dbg(&xe->drm, "Notifier prepare pin failed (%d)\n", err);
313-
xe_pm_runtime_put(xe);
314-
}
310+
/*
311+
* Keep the runtime pm reference until post hibernation / post suspend to
312+
* avoid a runtime suspend interfering with evicted objects or backup
313+
* allocations.
314+
*/
315315
break;
316316
case PM_POST_HIBERNATION:
317317
case PM_POST_SUSPEND:
@@ -320,9 +320,6 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
320320
break;
321321
}
322322

323-
if (err)
324-
return NOTIFY_BAD;
325-
326323
return NOTIFY_DONE;
327324
}
328325

0 commit comments

Comments
 (0)