[PATCH 4/4] drm/xe/pf: Allow wedged_mode=2 only in debug config

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


The GuC reset policy is global, so changing it on PF can impact running
VFs. To avoid unintended side effects, setting wedged_mode=2 on the PF
is restricted to debug builds only.

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  | 7 +++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 369bb2103e4c..79a879d92845 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -169,7 +169,8 @@ 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))
+	if (wedged_mode == 2 &&
+	    (IS_SRIOV_VF(xe) || (IS_SRIOV_PF(xe) && !IS_ENABLED(CONFIG_DRM_XE_DEBUG))))
 		return -EPERM;
 
 	xe_pm_runtime_get(xe);
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 13430538f861..b42af557acb8 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -735,8 +735,11 @@ int xe_device_probe_early(struct xe_device *xe)
 
 	if (xe_modparam.wedged_mode > 2) {
 		drm_dbg(&xe->drm, "Used wedged_mode value is invalid. Setting default (1)\n");
-	} 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 if (xe_modparam.wedged_mode == 2) {
+		if  (IS_SRIOV_VF(xe))
+			drm_dbg(&xe->drm, "Can't set wedged_mode=2 when running as VF. Setting default (1)\n");
+		else if (IS_SRIOV_PF(xe) && !IS_ENABLED(CONFIG_DRM_XE_DEBUG))
+			drm_dbg(&xe->drm, "Can't set wedged_mode=2 when running as PF in non-debug config. Setting default (1)\n");
 	} else {
 		xe->wedged.mode = xe_modparam.wedged_mode;
 	}
-- 
2.40.0



More information about the Intel-xe mailing list