Chris Wilson <[email protected]> writes:

> Before we grab the engine wakeref, tidy up the previous heartbeat
> request. If we then abort because the engine powerwell is off, we ensure
> the request is freed as we know we will not have freed it when
> cancelling the work (as the work is running!).
>
> Fixes: 841e86728615 ("drm/i915/gt: Only drop heartbeat.systole if the sole 
> owner")
> References: 058179e72e09 ("drm/i915/gt: Replace hangcheck by heartbeats")
> Signed-off-by: Chris Wilson <[email protected]>
> Cc: Mika Kuoppala <[email protected]>

Reviewed-by: Mika Kuoppala <[email protected]>

> ---
>  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c 
> b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> index 06aa14c7aa8c..c91fd4e4af29 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> @@ -63,15 +63,15 @@ static void heartbeat(struct work_struct *wrk)
>       struct intel_context *ce = engine->kernel_context;
>       struct i915_request *rq;
>  
> -     if (!intel_engine_pm_get_if_awake(engine))
> -             return;
> -
>       rq = engine->heartbeat.systole;
>       if (rq && i915_request_completed(rq)) {
>               i915_request_put(rq);
>               engine->heartbeat.systole = NULL;
>       }
>  
> +     if (!intel_engine_pm_get_if_awake(engine))
> +             return;
> +
>       if (intel_gt_is_wedged(engine->gt))
>               goto out;
>  
> -- 
> 2.24.0
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to