[PATCH] kick-once
Chris Wilson
chris at chris-wilson.co.uk
Thu Dec 17 01:49:48 UTC 2020
---
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
index 00918300f53f..4ee11acb7444 100644
--- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
@@ -334,15 +334,13 @@ void intel_breadcrumbs_reset(struct intel_breadcrumbs *b)
void intel_breadcrumbs_park(struct intel_breadcrumbs *b)
{
+ if (!READ_ONCE(b->irq_armed))
+ return;
+
/* Kick the work once more to drain the signalers */
irq_work_sync(&b->irq_work);
- while (unlikely(READ_ONCE(b->irq_armed))) {
- local_irq_disable();
- signal_irq_work(&b->irq_work);
- local_irq_enable();
- cond_resched();
- }
- GEM_BUG_ON(!list_empty(&b->signalers));
+ if (unlikely(READ_ONCE(b->irq_armed)))
+ irq_work_queue(&b->irq_work);
}
void intel_breadcrumbs_free(struct intel_breadcrumbs *b)
--
2.20.1
More information about the Intel-gfx-trybot
mailing list