freedreno: drop exported dmabuf fd tracking
authorRob Clark <robdclark@gmail.com>
Fri, 4 Sep 2015 15:41:47 +0000 (11:41 -0400)
committerRob Clark <robclark@freedesktop.org>
Sat, 19 Sep 2015 16:12:04 +0000 (12:12 -0400)
There is really no reason to keep around the fd, it just consumes an
extra file handle.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
freedreno/freedreno_bo.c
freedreno/freedreno_priv.h
freedreno/kgsl/kgsl_bo.c
freedreno/msm/msm_bo.c

index fee32fc..a23c65d 100644 (file)
@@ -298,11 +298,6 @@ void fd_bo_del(struct fd_bo *bo)
        if (!atomic_dec_and_test(&bo->refcnt))
                return;
 
-       if (bo->fd >= 0) {
-               close(bo->fd);
-               bo->fd = -1;
-       }
-
        pthread_mutex_lock(&table_lock);
 
        if (bo->bo_reuse) {
@@ -386,19 +381,18 @@ uint32_t fd_bo_handle(struct fd_bo *bo)
 
 int fd_bo_dmabuf(struct fd_bo *bo)
 {
-       if (bo->fd < 0) {
-               int ret, prime_fd;
-
-               ret = drmPrimeHandleToFD(bo->dev->fd, bo->handle, DRM_CLOEXEC,
-                                       &prime_fd);
-               if (ret) {
-                       return ret;
-               }
+       int ret, prime_fd;
 
-               bo->fd = prime_fd;
-               bo->bo_reuse = 0;
+       ret = drmPrimeHandleToFD(bo->dev->fd, bo->handle, DRM_CLOEXEC,
+                       &prime_fd);
+       if (ret) {
+               ERROR_MSG("failed to get dmabuf fd: %d", ret);
+               return ret;
        }
-       return dup(bo->fd);
+
+       bo->bo_reuse = 0;
+
+       return prime_fd;
 }
 
 uint32_t fd_bo_size(struct fd_bo *bo)
index 4e442e4..53817b1 100644 (file)
@@ -138,7 +138,6 @@ struct fd_bo {
        uint32_t size;
        uint32_t handle;
        uint32_t name;
-       int fd;          /* dmabuf handle */
        void *map;
        atomic_t refcnt;
        const struct fd_bo_funcs *funcs;
index b8ac102..2b45b5e 100644 (file)
@@ -168,7 +168,6 @@ drm_private struct fd_bo * kgsl_bo_from_handle(struct fd_device *dev,
 
        bo = &kgsl_bo->base;
        bo->funcs = &funcs;
-       bo->fd = -1;
 
        for (i = 0; i < ARRAY_SIZE(kgsl_bo->list); i++)
                list_inithead(&kgsl_bo->list[i]);
index ee668ab..cd05a6c 100644 (file)
@@ -136,7 +136,6 @@ drm_private struct fd_bo * msm_bo_from_handle(struct fd_device *dev,
 
        bo = &msm_bo->base;
        bo->funcs = &funcs;
-       bo->fd = -1;
 
        return bo;
 }