OSDN Git Service

minigbm: increment ref count in drv_bo_import
authorSatyajit Sahu <satyajit.sahu@amd.com>
Thu, 12 Jul 2018 06:59:39 +0000 (12:29 +0530)
committerchrome-bot <chrome-bot@chromium.org>
Fri, 13 Jul 2018 09:22:29 +0000 (02:22 -0700)
increment the reference count of gem handle in
drv_bo_import instead of backend.

BUG=b:111378370
TEST=graphics autotest suite

Change-Id: I68bc64e421f8505be5cd46874f02ab5c32805f04
Signed-off-by: Satyajit Sahu <satyajit.sahu@amd.com>
Reviewed-on: https://chromium-review.googlesource.com/1134720
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
drv.c
helpers.c

diff --git a/drv.c b/drv.c
index bc1f782..0976404 100644 (file)
--- a/drv.c
+++ b/drv.c
@@ -361,6 +361,12 @@ struct bo *drv_bo_import(struct driver *drv, struct drv_import_fd_data *data)
        }
 
        for (plane = 0; plane < bo->num_planes; plane++) {
+               pthread_mutex_lock(&bo->drv->driver_lock);
+               drv_increment_reference_count(bo->drv, bo, plane);
+               pthread_mutex_unlock(&bo->drv->driver_lock);
+       }
+
+       for (plane = 0; plane < bo->num_planes; plane++) {
                bo->strides[plane] = data->strides[plane];
                bo->offsets[plane] = data->offsets[plane];
                bo->format_modifiers[plane] = data->format_modifiers[plane];
index 4fabfa9..def8475 100644 (file)
--- a/helpers.c
+++ b/helpers.c
@@ -368,12 +368,6 @@ int drv_prime_bo_import(struct bo *bo, struct drv_import_fd_data *data)
                bo->handles[plane].u32 = prime_handle.handle;
        }
 
-       for (plane = 0; plane < bo->num_planes; plane++) {
-               pthread_mutex_lock(&bo->drv->driver_lock);
-               drv_increment_reference_count(bo->drv, bo, plane);
-               pthread_mutex_unlock(&bo->drv->driver_lock);
-       }
-
        return 0;
 }