From cfd4721ee030f7f78e65a38a0ceb27db88e2c3be Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sat, 11 Feb 2023 07:52:42 -0800 Subject: [PATCH] freedreno/drm: Make rb refcnt non-atomic Now that the one special case where multiple threads could race to ref/unref, we can go back to using non-atomic refcnts. Signed-off-by: Rob Clark Part-of: --- src/freedreno/drm/freedreno_ringbuffer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/freedreno/drm/freedreno_ringbuffer.h b/src/freedreno/drm/freedreno_ringbuffer.h index 7acb70c..3c2be70 100644 --- a/src/freedreno/drm/freedreno_ringbuffer.h +++ b/src/freedreno/drm/freedreno_ringbuffer.h @@ -165,7 +165,7 @@ unref(int32_t *ref) static inline void fd_ringbuffer_del(struct fd_ringbuffer *ring) { - if (!unref(&ring->refcnt)) + if (--ring->refcnt > 0) return; ring->funcs->destroy(ring); @@ -174,7 +174,7 @@ fd_ringbuffer_del(struct fd_ringbuffer *ring) static inline struct fd_ringbuffer * fd_ringbuffer_ref(struct fd_ringbuffer *ring) { - ref(&ring->refcnt); + ring->refcnt++; return ring; } -- 2.7.4