[PATCH] kick-once

Chris Wilson chris at chris-wilson.co.uk
Thu Dec 17 01:09:54 UTC 2020


---
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
index 00918300f53f..444ea519ccf0 100644
--- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
@@ -334,15 +334,16 @@ 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))) {
+	if (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));
 }
 
 void intel_breadcrumbs_free(struct intel_breadcrumbs *b)
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list