static void vf_post_migration_kickstart(struct xe_gt *gt)
{
- /*
- * Make sure interrupts on the new HW are properly set. The GuC IRQ
- * must be working at this point, since the recovery did started,
- * but the rest was not enabled using the procedure from spec.
- */
- xe_irq_resume(gt_to_xe(gt));
-
xe_guc_submit_unpause(>->uc.guc);
}
if (skip_resfix)
return -EAGAIN;
+ /*
+ * Make sure interrupts on the new HW are properly set. The GuC IRQ
+ * must be working at this point, since the recovery did started,
+ * but the rest was not enabled using the procedure from spec.
+ */
+ xe_irq_resume(gt_to_xe(gt));
+
return vf_notify_resfix_done(gt);
}
if (err)
goto fail;
- vf_post_migration_kickstart(gt);
err = vf_post_migration_notify_resfix_done(gt);
if (err && err != -EAGAIN)
goto fail;
+ vf_post_migration_kickstart(gt);
+
xe_pm_runtime_put(xe);
xe_gt_sriov_notice(gt, "migration recovery ended\n");
return;