Commit ebd546fd authored by Thomas Hellström's avatar Thomas Hellström
Browse files

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: c6a4d46e ("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: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://lore.kernel.org/r/20250904160715.2613-3-thomas.hellstrom@linux.intel.com
parent cb3d7b3b
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -312,17 +312,17 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
	case PM_SUSPEND_PREPARE:
		xe_pm_runtime_get(xe);
		err = xe_bo_evict_all_user(xe);
		if (err) {
		if (err)
			drm_dbg(&xe->drm, "Notifier evict user failed (%d)\n", err);
			xe_pm_runtime_put(xe);
			break;
		}

		err = xe_bo_notifier_prepare_all_pinned(xe);
		if (err) {
		if (err)
			drm_dbg(&xe->drm, "Notifier prepare pin failed (%d)\n", err);
			xe_pm_runtime_put(xe);
		}
		/*
		 * Keep the runtime pm reference until post hibernation / post suspend to
		 * avoid a runtime suspend interfering with evicted objects or backup
		 * allocations.
		 */
		break;
	case PM_POST_HIBERNATION:
	case PM_POST_SUSPEND:
@@ -331,9 +331,6 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
		break;
	}

	if (err)
		return NOTIFY_BAD;

	return NOTIFY_DONE;
}