Module: Mesa
Branch: master
Commit: 034dd948dfd88d0686796e33563b99735127564b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=034dd948dfd88d0686796e33563b99735127564b

Author: Christian Gmeiner <[email protected]>
Date:   Mon Nov 30 09:39:35 2020 +0100

etnaviv/drm: convert to simple_mtx

We do not need a full blown pthread mutex.

Signed-off-by: Christian Gmeiner <[email protected]>
Reviewed-by: Lucas Stach <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7832>

---

 src/etnaviv/drm/etnaviv_bo.c         | 24 ++++++++++++------------
 src/etnaviv/drm/etnaviv_bo_cache.c   |  4 ++--
 src/etnaviv/drm/etnaviv_cmd_stream.c |  6 +++---
 src/etnaviv/drm/etnaviv_device.c     |  4 ++--
 src/etnaviv/drm/etnaviv_priv.h       |  4 ++--
 5 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/etnaviv/drm/etnaviv_bo.c b/src/etnaviv/drm/etnaviv_bo.c
index 7fde304ed3b..8c258f2b565 100644
--- a/src/etnaviv/drm/etnaviv_bo.c
+++ b/src/etnaviv/drm/etnaviv_bo.c
@@ -30,7 +30,7 @@
 #include "etnaviv_priv.h"
 #include "etnaviv_drmif.h"
 
-pthread_mutex_t etna_drm_table_lock = PTHREAD_MUTEX_INITIALIZER;
+simple_mtx_t etna_drm_table_lock = _SIMPLE_MTX_INITIALIZER_NP;
 void _etna_bo_del(struct etna_bo *bo);
 
 /* set buffer name, and add to table, call w/ etna_drm_table_lock held: */
@@ -135,10 +135,10 @@ struct etna_bo *etna_bo_new(struct etna_device *dev, 
uint32_t size,
        if (ret)
                return NULL;
 
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
        bo = bo_from_handle(dev, size, req.handle, flags);
        bo->reuse = 1;
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 
        VG_BO_ALLOC(bo);
 
@@ -181,7 +181,7 @@ struct etna_bo *etna_bo_from_name(struct etna_device *dev,
                .name = name,
        };
 
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
 
        /* check name table first, to see if bo is already open: */
        bo = lookup_bo(dev->name_table, name);
@@ -204,7 +204,7 @@ struct etna_bo *etna_bo_from_name(struct etna_device *dev,
        }
 
 out_unlock:
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 
        return bo;
 }
@@ -223,11 +223,11 @@ struct etna_bo *etna_bo_from_dmabuf(struct etna_device 
*dev, int fd)
         * racing against etna_bo_del, which might invalidate the
         * returned handle.
         */
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
 
        ret = drmPrimeFDToHandle(dev->fd, fd, &handle);
        if (ret) {
-               pthread_mutex_unlock(&etna_drm_table_lock);
+               simple_mtx_unlock(&etna_drm_table_lock);
                return NULL;
        }
 
@@ -244,7 +244,7 @@ struct etna_bo *etna_bo_from_dmabuf(struct etna_device 
*dev, int fd)
        VG_BO_ALLOC(bo);
 
 out_unlock:
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 
        return bo;
 }
@@ -257,7 +257,7 @@ void etna_bo_del(struct etna_bo *bo)
 
        struct etna_device *dev = bo->dev;
 
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
 
        /* Must test under table lock to avoid racing with the from_dmabuf/name
         * paths, which rely on the BO refcount to be stable over the lookup, so
@@ -272,7 +272,7 @@ void etna_bo_del(struct etna_bo *bo)
        _etna_bo_del(bo);
        etna_device_del_locked(dev);
 out:
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 }
 
 /* get the global flink/DRI2 buffer name */
@@ -289,9 +289,9 @@ int etna_bo_get_name(struct etna_bo *bo, uint32_t *name)
                        return ret;
                }
 
-               pthread_mutex_lock(&etna_drm_table_lock);
+               simple_mtx_lock(&etna_drm_table_lock);
                set_name(bo, req.name);
-               pthread_mutex_unlock(&etna_drm_table_lock);
+               simple_mtx_unlock(&etna_drm_table_lock);
                bo->reuse = 0;
        }
 
diff --git a/src/etnaviv/drm/etnaviv_bo_cache.c 
b/src/etnaviv/drm/etnaviv_bo_cache.c
index 185ae525435..e99cf46399d 100644
--- a/src/etnaviv/drm/etnaviv_bo_cache.c
+++ b/src/etnaviv/drm/etnaviv_bo_cache.c
@@ -122,7 +122,7 @@ static struct etna_bo *find_in_bucket(struct etna_bo_bucket 
*bucket, uint32_t fl
 {
        struct etna_bo *bo = NULL, *tmp;
 
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
 
        if (list_is_empty(&bucket->list))
                goto out_unlock;
@@ -146,7 +146,7 @@ static struct etna_bo *find_in_bucket(struct etna_bo_bucket 
*bucket, uint32_t fl
        bo = NULL;
 
 out_unlock:
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 
        return bo;
 }
diff --git a/src/etnaviv/drm/etnaviv_cmd_stream.c 
b/src/etnaviv/drm/etnaviv_cmd_stream.c
index 0c12bfe4452..5555efb3e7e 100644
--- a/src/etnaviv/drm/etnaviv_cmd_stream.c
+++ b/src/etnaviv/drm/etnaviv_cmd_stream.c
@@ -30,7 +30,7 @@
 #include "etnaviv_drmif.h"
 #include "etnaviv_priv.h"
 
-static pthread_mutex_t idx_lock = PTHREAD_MUTEX_INITIALIZER;
+static simple_mtx_t idx_lock = _SIMPLE_MTX_INITIALIZER_NP;
 
 static void *grow(void *ptr, uint32_t nr, uint32_t *max, uint32_t sz)
 {
@@ -173,7 +173,7 @@ static uint32_t bo2idx(struct etna_cmd_stream *stream, 
struct etna_bo *bo,
        struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
        uint32_t idx;
 
-       pthread_mutex_lock(&idx_lock);
+       simple_mtx_lock(&idx_lock);
 
        if (bo->current_stream == stream) {
                idx = bo->idx;
@@ -195,7 +195,7 @@ static uint32_t bo2idx(struct etna_cmd_stream *stream, 
struct etna_bo *bo,
                bo->current_stream = stream;
                bo->idx = idx;
        }
-       pthread_mutex_unlock(&idx_lock);
+       simple_mtx_unlock(&idx_lock);
 
        if (flags & ETNA_RELOC_READ)
                priv->submit.bos[idx].flags |= ETNA_SUBMIT_BO_READ;
diff --git a/src/etnaviv/drm/etnaviv_device.c b/src/etnaviv/drm/etnaviv_device.c
index e53fa180e06..2f2f9211467 100644
--- a/src/etnaviv/drm/etnaviv_device.c
+++ b/src/etnaviv/drm/etnaviv_device.c
@@ -109,9 +109,9 @@ void etna_device_del(struct etna_device *dev)
        if (!p_atomic_dec_zero(&dev->refcnt))
                return;
 
-       pthread_mutex_lock(&etna_drm_table_lock);
+       simple_mtx_lock(&etna_drm_table_lock);
        etna_device_del_impl(dev);
-       pthread_mutex_unlock(&etna_drm_table_lock);
+       simple_mtx_unlock(&etna_drm_table_lock);
 }
 
 int etna_device_fd(struct etna_device *dev)
diff --git a/src/etnaviv/drm/etnaviv_priv.h b/src/etnaviv/drm/etnaviv_priv.h
index bec01ae4ce0..e3a857b0824 100644
--- a/src/etnaviv/drm/etnaviv_priv.h
+++ b/src/etnaviv/drm/etnaviv_priv.h
@@ -34,7 +34,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
-#include <pthread.h>
 #include <stdio.h>
 #include <assert.h>
 
@@ -42,6 +41,7 @@
 
 #include "util/list.h"
 #include "util/macros.h"
+#include "util/simple_mtx.h"
 #include "util/timespec.h"
 #include "util/u_atomic.h"
 #include "util/u_debug.h"
@@ -50,7 +50,7 @@
 #include "etnaviv_drmif.h"
 #include "drm-uapi/etnaviv_drm.h"
 
-extern pthread_mutex_t etna_drm_table_lock;
+extern simple_mtx_t etna_drm_table_lock;
 
 struct etna_bo_bucket {
        uint32_t size;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to