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);

Andi

> +     }

Reply via email to