Userspace should be notified after setting the device as wedged.
Re-order function calls to set gt wedged before sending uevent.

Cc: Matthew Brost <matthew.br...@intel.com>
Suggested-by: Raag Jadav <raag.ja...@intel.com>
Signed-off-by: Riana Tauro <riana.ta...@intel.com>
Reviewed-by: Matthew Brost <matthew.br...@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 6dc84e4ed281..ab507e6cf2a4 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1136,8 +1136,10 @@ static void xe_device_wedged_fini(struct drm_device 
*drm, void *arg)
  * xe_device_declare_wedged - Declare device wedged
  * @xe: xe device instance
  *
- * This is a final state that can only be cleared with a module
+ * This is a final state that can only be cleared with the recovery method
+ * specified in the drm wedged uevent. The default recovery method is
  * re-probe (unbind + bind).
+ *
  * In this state every IOCTL will be blocked so the GT cannot be used.
  * In general it will be called upon any critical error such as gt reset
  * failure or guc loading failure. Userspace will be notified of this state
@@ -1171,13 +1173,15 @@ void xe_device_declare_wedged(struct xe_device *xe)
                        "IOCTLs and executions are blocked. Only a rebind may 
clear the failure\n"
                        "Please file a _new_ bug report at 
https://gitlab.freedesktop.org/drm/xe/kernel/issues/new\n";,
                        dev_name(xe->drm.dev));
+       }
+
+       for_each_gt(gt, xe, id)
+               xe_gt_declare_wedged(gt);
 
+       if (xe_device_wedged(xe)) {
                /* Notify userspace of wedged device */
                drm_dev_wedged_event(&xe->drm,
                                     DRM_WEDGE_RECOVERY_REBIND | 
DRM_WEDGE_RECOVERY_BUS_RESET,
                                     NULL);
        }
-
-       for_each_gt(gt, xe, id)
-               xe_gt_declare_wedged(gt);
 }
-- 
2.47.1

Reply via email to