[PATCH 2/4] drm/xe: Validate wedged_mode modparam input
Matthew Brost
matthew.brost at intel.com
Thu Apr 24 21:42:52 UTC 2025
On Thu, Apr 24, 2025 at 04:30:41PM +0200, Lukasz Laguna wrote:
> Check correctness of the wedged_mode module parameter input. If the
> value is out of the expected range (>2), set the default (1) and log a
> debug message.
>
> Signed-off-by: Lukasz Laguna <lukasz.laguna at intel.com>
> ---
> drivers/gpu/drm/xe/xe_device.c | 7 ++++++-
> drivers/gpu/drm/xe/xe_guc_capture.c | 2 +-
> drivers/gpu/drm/xe/xe_module.c | 2 +-
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 75e753e0a682..d2de6936cc20 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -731,7 +731,12 @@ int xe_device_probe_early(struct xe_device *xe)
> if (err)
> return err;
>
> - xe->wedged.mode = xe_modparam.wedged_mode;
> + if (xe_modparam.wedged_mode > 2) {
Maybe out of scope, but while we are here I think rather than magic 0, 1, 2
for wedged mode sprikled over the driver can we add defines for 0, 1, 2?
Something like:
#define XE_WEDGED_MODE_DISABLED 0
#define XE_WEDGED_MODE_FATAL_ERROR 1
#define XE_WEDGED_MODE_FIRST_HANG 2
Matt
> + drm_dbg(&xe->drm, "Used wedged_mode value is invalid. Setting default (1)\n");
> + xe->wedged.mode = 1; /* default */
> + } else {
> + xe->wedged.mode = xe_modparam.wedged_mode;
> + }
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/xe/xe_guc_capture.c b/drivers/gpu/drm/xe/xe_guc_capture.c
> index 859a3ba91be5..a471cf55ad8d 100644
> --- a/drivers/gpu/drm/xe/xe_guc_capture.c
> +++ b/drivers/gpu/drm/xe/xe_guc_capture.c
> @@ -1856,7 +1856,7 @@ xe_guc_capture_get_matching_and_lock(struct xe_exec_queue *q)
> return NULL;
>
> xe = gt_to_xe(q->gt);
> - if (xe->wedged.mode >= 2 || !xe_device_uc_enabled(xe) || IS_SRIOV_VF(xe))
> + if (xe->wedged.mode == 2 || !xe_device_uc_enabled(xe) || IS_SRIOV_VF(xe))
> return NULL;
>
> ss = &xe->devcoredump.snapshot;
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index 05c7d0ae6d83..b1b9bb2056ae 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -71,7 +71,7 @@ MODULE_PARM_DESC(max_vfs,
> "(0 = no VFs [default]; N = allow up to N VFs)");
> #endif
>
> -module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, int, 0600);
> +module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, uint, 0600);
> MODULE_PARM_DESC(wedged_mode,
> "Module's default policy for the wedged mode - 0=never, 1=upon-critical-errors[default], 2=upon-any-hang");
>
> --
> 2.40.0
>
More information about the Intel-xe
mailing list