]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/xe_survivability: Simplify runtime survivability error handling
authorMallesh Koujalagi <mallesh.koujalagi@intel.com>
Mon, 4 May 2026 11:03:01 +0000 (16:33 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 5 May 2026 19:01:43 +0000 (15:01 -0400)
xe_survivability_mode_runtime_enable() returns an int, but its caller
csc_hw_error_work() ignores the return value and cannot take any
meaningful recovery action on failure. The function logs errors via
dev_err() and proceeds to declare the device wedged regardless of
sysfs creation failure, making the return value redundant.

Change the return type to void and remove the unnecessary
error handling in the caller.

v2:
- Return is not require after the sysfs creation fail. (Rodrigo/Riana)
- Change int to void return type. (Rodrigo)
- Remove extra message from csc_hw_error_work().

v3:
- Remove ret variable. (Raag)

v4:
- Drop ret variable from other part of code.

v5:
- Reframe as refactoring instead of bug fix. (Raag)
- Remove Fixes tag and update subject line.

Signed-off-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Link: https://patch.msgid.link/20260504110300.1467303-2-mallesh.koujalagi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_hw_error.c
drivers/gpu/drm/xe/xe_survivability_mode.c
drivers/gpu/drm/xe/xe_survivability_mode.h

index 8b56ca9700f77450c40bb8c2abbfcb3308ed230e..5135e8e4093f70e8c915c40b329608a300193424 100644 (file)
@@ -176,11 +176,8 @@ static void csc_hw_error_work(struct work_struct *work)
 {
        struct xe_tile *tile = container_of(work, typeof(*tile), csc_hw_error_work);
        struct xe_device *xe = tile_to_xe(tile);
-       int ret;
 
-       ret = xe_survivability_mode_runtime_enable(xe);
-       if (ret)
-               drm_err(&xe->drm, "Failed to enable runtime survivability mode\n");
+       xe_survivability_mode_runtime_enable(xe);
 }
 
 static void csc_hw_error_handler(struct xe_tile *tile, const enum hardware_error hw_err)
index db64cac39c94455732d85548c74df6d43d99f490..427afd144f3ac73bc09b1942d0a9dedd04748c7e 100644 (file)
@@ -396,25 +396,21 @@ bool xe_survivability_mode_is_requested(struct xe_device *xe)
  * Runtime survivability mode is enabled when certain errors cause the device to be
  * in non-recoverable state. The device is declared wedged with the appropriate
  * recovery method and survivability mode sysfs exposed to userspace
- *
- * Return: 0 if runtime survivability mode is enabled, negative error code otherwise.
  */
-int xe_survivability_mode_runtime_enable(struct xe_device *xe)
+void xe_survivability_mode_runtime_enable(struct xe_device *xe)
 {
        struct xe_survivability *survivability = &xe->survivability;
        struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
-       int ret;
 
        if (!IS_DGFX(xe) || IS_SRIOV_VF(xe) || xe->info.platform < XE_BATTLEMAGE) {
                dev_err(&pdev->dev, "Runtime Survivability Mode not supported\n");
-               return -EINVAL;
+               return;
        }
 
        populate_survivability_info(xe);
 
-       ret = create_survivability_sysfs(pdev);
-       if (ret)
-               dev_err(&pdev->dev, "Failed to create survivability mode sysfs\n");
+       if (create_survivability_sysfs(pdev))
+               dev_err(&pdev->dev, "Failed to create survivability sysfs\n");
 
        survivability->type = XE_SURVIVABILITY_TYPE_RUNTIME;
        dev_err(&pdev->dev, "Runtime Survivability mode enabled\n");
@@ -422,8 +418,6 @@ int xe_survivability_mode_runtime_enable(struct xe_device *xe)
        xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_VENDOR);
        xe_device_declare_wedged(xe);
        dev_err(&pdev->dev, "Firmware flash required, Please refer to the userspace documentation for more details!\n");
-
-       return 0;
 }
 
 /**
index 1cc94226aa82d666f8f5d16f328ae6a9b164948d..cd040e4d18bb86f44b0244e6562fb702c13cdf88 100644 (file)
@@ -11,7 +11,7 @@
 struct xe_device;
 
 int xe_survivability_mode_boot_enable(struct xe_device *xe);
-int xe_survivability_mode_runtime_enable(struct xe_device *xe);
+void xe_survivability_mode_runtime_enable(struct xe_device *xe);
 bool xe_survivability_mode_is_boot_enabled(struct xe_device *xe);
 bool xe_survivability_mode_is_requested(struct xe_device *xe);