iris: Set bo->reusable = false in iris_bo_make_external_locked
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 11 Sep 2019 06:57:57 +0000 (23:57 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 11 Sep 2019 15:10:47 +0000 (08:10 -0700)
This fixes a missing bo->reusable = false in iris_bo_export_gem_handle.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
src/gallium/drivers/iris/iris_bufmgr.c

index dfaba84b4998b6f50aaabd833db0e1b948f0fd2e..992bbd90b3a01662231479191719003aba120b4a 100644 (file)
@@ -1337,6 +1337,7 @@ iris_bo_make_external_locked(struct iris_bo *bo)
    if (!bo->external) {
       _mesa_hash_table_insert(bo->bufmgr->handle_table, &bo->gem_handle, bo);
       bo->external = true;
+      bo->reusable = false;
    }
 }
 
@@ -1345,8 +1346,10 @@ iris_bo_make_external(struct iris_bo *bo)
 {
    struct iris_bufmgr *bufmgr = bo->bufmgr;
 
-   if (bo->external)
+   if (bo->external) {
+      assert(!bo->reusable);
       return;
+   }
 
    mtx_lock(&bufmgr->lock);
    iris_bo_make_external_locked(bo);
@@ -1364,8 +1367,6 @@ iris_bo_export_dmabuf(struct iris_bo *bo, int *prime_fd)
                           DRM_CLOEXEC, prime_fd) != 0)
       return -errno;
 
-   bo->reusable = false;
-
    return 0;
 }
 
@@ -1395,8 +1396,6 @@ iris_bo_flink(struct iris_bo *bo, uint32_t *name)
          _mesa_hash_table_insert(bufmgr->name_table, &bo->global_name, bo);
       }
       mtx_unlock(&bufmgr->lock);
-
-      bo->reusable = false;
    }
 
    *name = bo->global_name;