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
This commit is contained in:
Matthew Brost 2025-10-21 17:55:38 -07:00
parent 480b358e7d
commit f6c1345a85

View File

@ -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 @@ static void vf_post_migration_recovery(struct xe_gt *gt)
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)