[PATCH 3/4] drm/xe/vf: Disallow setting wedged_mode=2

Lukasz Laguna lukasz.laguna at intel.com
Thu Apr 24 14:30:42 UTC 2025


In wedged_mode=2, engine resets need to be disabled, which requires
changing the GuC reset policy. VFs are not permitted to do that.

Signed-off-by: Lukasz Laguna <lukasz.laguna at intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 3 +++
 drivers/gpu/drm/xe/xe_device.c  | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 2e6d8744003b..369bb2103e4c 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -169,6 +169,9 @@ static ssize_t wedged_mode_set(struct file *f, const char __user *ubuf,
 	if (xe->wedged.mode == wedged_mode)
 		return size;
 
+	if (wedged_mode == 2 && IS_SRIOV_VF(xe))
+		return -EPERM;
+
 	xe_pm_runtime_get(xe);
 	for_each_gt(gt, xe, id) {
 		ret = xe_guc_ads_scheduler_policy_toggle_reset(&gt->uc.guc.ads);
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d2de6936cc20..13430538f861 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -731,9 +731,12 @@ int xe_device_probe_early(struct xe_device *xe)
 	if (err)
 		return err;
 
+	xe->wedged.mode = 1; /* default */
+
 	if (xe_modparam.wedged_mode > 2) {
 		drm_dbg(&xe->drm, "Used wedged_mode value is invalid. Setting default (1)\n");
-		xe->wedged.mode = 1; /* default */
+	} else if (xe_modparam.wedged_mode == 2 && IS_SRIOV_VF(xe)) {
+		drm_dbg(&xe->drm, "Can't set wedged_mode=2 when running as VF. Setting default (1)\n");
 	} else {
 		xe->wedged.mode = xe_modparam.wedged_mode;
 	}
-- 
2.40.0



More information about the Intel-xe mailing list