mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
drm/xe: Add missing runtime reference to wedged upon gt_reset
Fixes this missed case: xe 0000:00:02.0: [drm] Missing outer runtime PM protection WARNING: CPU: 99 PID: 1455 at drivers/gpu/drm/xe/xe_pm.c:564 xe_pm_runtime_get_noresume+0x48/0x60 [xe] Call Trace: <TASK> ? show_regs+0x67/0x70 ? __warn+0x94/0x1b0 ? xe_pm_runtime_get_noresume+0x48/0x60 [xe] ? report_bug+0x1b7/0x1d0 ? handle_bug+0x46/0x80 ? exc_invalid_op+0x19/0x70 ? asm_exc_invalid_op+0x1b/0x20 ? xe_pm_runtime_get_noresume+0x48/0x60 [xe] xe_device_declare_wedged+0x91/0x280 [xe] gt_reset_worker+0xa2/0x250 [xe] v2: Also move get and get the right Fixes tag (Himal, Brost) Fixes:fb74b205cd
("drm/xe: Introduce a simple wedged state") Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240830183507.298351-1-rodrigo.vivi@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> (cherry picked from commitbc947d9a8c
) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
fe13fd6833
commit
82122d1f54
@ -753,12 +753,13 @@ static int gt_reset(struct xe_gt *gt)
|
|||||||
|
|
||||||
xe_gt_info(gt, "reset started\n");
|
xe_gt_info(gt, "reset started\n");
|
||||||
|
|
||||||
|
xe_pm_runtime_get(gt_to_xe(gt));
|
||||||
|
|
||||||
if (xe_fault_inject_gt_reset()) {
|
if (xe_fault_inject_gt_reset()) {
|
||||||
err = -ECANCELED;
|
err = -ECANCELED;
|
||||||
goto err_fail;
|
goto err_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
xe_pm_runtime_get(gt_to_xe(gt));
|
|
||||||
xe_gt_sanitize(gt);
|
xe_gt_sanitize(gt);
|
||||||
|
|
||||||
err = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
|
err = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
|
||||||
@ -793,11 +794,11 @@ err_out:
|
|||||||
XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
|
XE_WARN_ON(xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL));
|
||||||
err_msg:
|
err_msg:
|
||||||
XE_WARN_ON(xe_uc_start(>->uc));
|
XE_WARN_ON(xe_uc_start(>->uc));
|
||||||
xe_pm_runtime_put(gt_to_xe(gt));
|
|
||||||
err_fail:
|
err_fail:
|
||||||
xe_gt_err(gt, "reset failed (%pe)\n", ERR_PTR(err));
|
xe_gt_err(gt, "reset failed (%pe)\n", ERR_PTR(err));
|
||||||
|
|
||||||
xe_device_declare_wedged(gt_to_xe(gt));
|
xe_device_declare_wedged(gt_to_xe(gt));
|
||||||
|
xe_pm_runtime_put(gt_to_xe(gt));
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user