remove PrivGem 71/120871/1
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 24 Mar 2017 11:44:18 +0000 (20:44 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 24 Mar 2017 11:45:50 +0000 (20:45 +0900)
PrivGem structure is useless.
use the bo_exynos as a value of the hashtable.

Change-Id: Iff0d4da14989e5b61ce818eebc5f48f73e032758

src/tbm_bufmgr_exynos.c

index 8ce6f58..d7566ef 100644 (file)
@@ -200,11 +200,6 @@ union _tbm_bo_cache_state {
 typedef struct _tbm_bufmgr_exynos *tbm_bufmgr_exynos;
 typedef struct _tbm_bo_exynos *tbm_bo_exynos;
 
-typedef struct _exynos_private {
-       int ref_count;
-       struct _tbm_bo_exynos *bo_priv;
-} PrivGem;
-
 /* tbm buffor object for exynos */
 struct _tbm_bo_exynos {
        int fd;
@@ -222,8 +217,6 @@ struct _tbm_bo_exynos {
        unsigned int flags_exynos;
        unsigned int flags_tbm;
 
-       PrivGem *private;
-
        pthread_mutex_t mutex;
        struct dma_buf_fence dma_fence[DMA_FENCE_LIST_MAX];
        int device;
@@ -1078,20 +1071,8 @@ tbm_exynos_bo_alloc(tbm_bo bo, int size, int flags)
                bo_exynos->dmabuf = arg.fd;
        }
 
-       /* add bo to hash */
-       PrivGem *privGem = calloc(1, sizeof(PrivGem));
-
-       if (!privGem) {
-               TBM_EXYNOS_ERROR("fail to calloc privGem\n");
-               free(bo_exynos);
-               return 0;
-       }
-
-       privGem->ref_count = 1;
-       privGem->bo_priv = bo_exynos;
-
        if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name,
-                         (void *)privGem) < 0) {
+                         (void *)bo_exynos) < 0) {
                TBM_EXYNOS_ERROR("Cannot insert bo to Hash(%d)\n", bo_exynos->name);
        }
 
@@ -1140,18 +1121,12 @@ tbm_exynos_bo_free(tbm_bo bo)
        }
 
        /* delete bo from hash */
-       PrivGem *privGem = NULL;
        int ret;
 
        ret = drmHashLookup(bufmgr_exynos->hashBos, bo_exynos->name,
-                            (void **)&privGem);
+                            (void **)&bo_exynos);
        if (ret == 0) {
-               privGem->ref_count--;
-               if (privGem->ref_count == 0) {
-                       drmHashDelete(bufmgr_exynos->hashBos, bo_exynos->name);
-                       free(privGem);
-                       privGem = NULL;
-               }
+               drmHashDelete(bufmgr_exynos->hashBos, bo_exynos->name);
        } else {
                TBM_EXYNOS_ERROR("Cannot find bo to Hash(%d), ret=%d\n",
                        bo_exynos->name, ret);
@@ -1180,15 +1155,14 @@ tbm_exynos_bo_import(tbm_bo bo, unsigned int key)
 
        tbm_bufmgr_exynos bufmgr_exynos;
        tbm_bo_exynos bo_exynos;
-       PrivGem *privGem = NULL;
        int ret;
 
        bufmgr_exynos = (tbm_bufmgr_exynos)tbm_backend_get_bufmgr_priv(bo);
        EXYNOS_RETURN_VAL_IF_FAIL(bufmgr_exynos != NULL, 0);
 
-       ret = drmHashLookup(bufmgr_exynos->hashBos, key, (void **)&privGem);
+       ret = drmHashLookup(bufmgr_exynos->hashBos, key, (void **)&bo_exynos);
        if (ret == 0)
-               return privGem->bo_priv;
+               return bo_exynos;
 
        struct drm_gem_open arg = {0, };
        struct drm_exynos_gem_info info = {0, };
@@ -1240,20 +1214,8 @@ tbm_exynos_bo_import(tbm_bo bo, unsigned int key)
        }
 
        /* add bo to hash */
-       privGem = NULL;
-
-       privGem = calloc(1, sizeof(PrivGem));
-       if (!privGem) {
-               TBM_EXYNOS_ERROR("fail to calloc privGem\n");
-               free(bo_exynos);
-               return 0;
-       }
-
-       privGem->ref_count = 1;
-       privGem->bo_priv = bo_exynos;
-
        if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name,
-                          (void *)privGem) < 0) {
+                          (void *)bo_exynos) < 0) {
                TBM_EXYNOS_ERROR("Cannot insert bo to Hash(%d)\n", bo_exynos->name);
        }
 
@@ -1274,7 +1236,6 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key)
 
        tbm_bufmgr_exynos bufmgr_exynos;
        tbm_bo_exynos bo_exynos;
-       PrivGem *privGem = NULL;
        unsigned int name;
        int ret;
        char buf[STRERR_BUFSIZE];
@@ -1302,10 +1263,10 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key)
                return 0;
        }
 
-       ret = drmHashLookup(bufmgr_exynos->hashBos, name, (void **)&privGem);
+       ret = drmHashLookup(bufmgr_exynos->hashBos, name, (void **)&bo_exynos);
        if (ret == 0) {
-               if (gem == privGem->bo_priv->gem)
-                       return privGem->bo_priv;
+               if (gem == bo_exynos->gem)
+                       return bo_exynos;
        }
 
        unsigned int real_size = -1;
@@ -1352,20 +1313,8 @@ tbm_exynos_bo_import_fd(tbm_bo bo, tbm_fd key)
        }
 
        /* add bo to hash */
-       privGem = NULL;
-
-       privGem = calloc(1, sizeof(PrivGem));
-       if (!privGem) {
-               TBM_EXYNOS_ERROR("fail to calloc privGem\n");
-               free(bo_exynos);
-               return 0;
-       }
-
-       privGem->ref_count = 1;
-       privGem->bo_priv = bo_exynos;
-
        if (drmHashInsert(bufmgr_exynos->hashBos, bo_exynos->name,
-                          (void *)privGem) < 0) {
+                          (void *)bo_exynos) < 0) {
                TBM_EXYNOS_ERROR("bo:%p Cannot insert bo to Hash(%d) from gem:%d, fd:%d\n",
                               bo, bo_exynos->name, gem, key);
        }