[PATCH 16/27] active-acquire

Chris Wilson chris at chris-wilson.co.uk
Thu Jun 6 08:54:05 UTC 2019


---
 drivers/gpu/drm/i915/i915_active.c       | 6 ++++--
 drivers/gpu/drm/i915/i915_active_types.h | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index 563299e50901..80a39cff9a67 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -158,7 +158,8 @@ void i915_active_init(struct drm_i915_private *i915,
 	ref->tree = RB_ROOT;
 	i915_active_request_init(&ref->last, NULL, last_retire);
 	init_llist_head(&ref->barriers);
-	ref->count = 0;
+	atomic_set(&ref->count, 0);
+	mutex_init(&ref->mutex);
 }
 
 int i915_active_ref(struct i915_active *ref,
@@ -260,7 +261,8 @@ void i915_active_fini(struct i915_active *ref)
 {
 	GEM_BUG_ON(i915_active_request_isset(&ref->last));
 	GEM_BUG_ON(!RB_EMPTY_ROOT(&ref->tree));
-	GEM_BUG_ON(ref->count);
+	GEM_BUG_ON(atomic_read(&ref->count));
+	mutex_destroy(&ref->mutex);
 }
 #endif
 
diff --git a/drivers/gpu/drm/i915/i915_active_types.h b/drivers/gpu/drm/i915/i915_active_types.h
index c025991b9233..32af708320f6 100644
--- a/drivers/gpu/drm/i915/i915_active_types.h
+++ b/drivers/gpu/drm/i915/i915_active_types.h
@@ -29,7 +29,8 @@ struct i915_active {
 
 	struct rb_root tree;
 	struct i915_active_request last;
-	unsigned int count;
+	struct mutex mutex;
+	atomic_t count;
 
 	void (*retire)(struct i915_active *ref);
 
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list