summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Brost <matthew.brost@intel.com>2025-10-21 17:55:38 -0700
committerMatthew Brost <matthew.brost@intel.com>2025-10-22 09:10:07 -0700
commitf6c1345a851bbe51d49fc7bc2653da92bb8896f5 (patch)
treec9d0abd7c06700c8d4c07c3e2a1d8915e9977379
parent480b358e7d8ef69fd8f1b0cad6e07c7d70a36ee4 (diff)
drm/xe: Avoid PM wake reference during VF migration
Virtual Functions (VFs) do not use runtime PM. Avoid taking PM references during VF migration, as lockdep may get confused—VF migration occurs in the reclaim path, and waking a PM reference can trigger memory allocation warnings. Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://lore.kernel.org/r/20251022005538.828980-4-matthew.brost@intel.com
-rw-r--r--drivers/gpu/drm/xe/xe_gt_sriov_vf.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
index 46518e629ba3..d0b102ab6ce8 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
@@ -31,7 +31,6 @@
#include "xe_lrc.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
-#include "xe_pm.h"
#include "xe_sriov.h"
#include "xe_sriov_vf.h"
#include "xe_sriov_vf_ccs.h"
@@ -1218,7 +1217,6 @@ static void vf_post_migration_recovery(struct xe_gt *gt)
xe_gt_sriov_dbg(gt, "migration recovery in progress\n");
- xe_pm_runtime_get(xe);
retry = vf_post_migration_shutdown(gt);
if (retry)
goto queue;
@@ -1241,12 +1239,10 @@ static void vf_post_migration_recovery(struct xe_gt *gt)
vf_post_migration_kickstart(gt);
- xe_pm_runtime_put(xe);
xe_gt_sriov_notice(gt, "migration recovery ended\n");
return;
fail:
vf_post_migration_abort(gt);
- xe_pm_runtime_put(xe);
xe_gt_sriov_err(gt, "migration recovery failed (%pe)\n", ERR_PTR(err));
xe_device_declare_wedged(xe);
return;
@@ -1254,7 +1250,6 @@ fail:
queue:
xe_gt_sriov_info(gt, "Re-queuing migration recovery\n");
queue_work(gt->ordered_wq, &gt->sriov.vf.migration.worker);
- xe_pm_runtime_put(xe);
}
static void migration_worker_func(struct work_struct *w)