On 28-08-2026 03:42, Andi Shyti wrote:
Hi Arvind,
...
+static void xe_device_wedged_work(struct work_struct *work)
+{
+ struct xe_device *xe =
+ container_of(work, struct xe_device, wedged.work);
+ unsigned long method;
+
+ /* Report at most one recovery method per worker invocation. */
+ method = READ_ONCE(xe->wedged.method);
+ if (method != READ_ONCE(xe->wedged.reported_method)) {
+ drm_dev_wedged_event(&xe->drm, method, NULL);
+ WRITE_ONCE(xe->wedged.reported_method, method);
I think we need to check the error from drm_dev_wedged_event():
int err;
err = drm_dev_wedged_event(&xe->drm, method, NULL);
if (!err)
WRITE_ONCE(xe->wedged.reported_method, method);
Thanks, agreed.
I will update reported_method only when drm_dev_wedged_event() succeeds.
Arvind
Andi
+ }