summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-09-10 23:57:57 -0700
committerKenneth Graunke <[email protected]>2019-09-11 08:10:47 -0700
commit73b70b4952a1c9aee65c7c81b675d3ab5076c205 (patch)
tree28812872317d5c4848a4c412356f753e413135f8 /src/gallium
parent06370c3167613e29865e95938075a41d28b5dbcb (diff)
iris: Set bo->reusable = false in iris_bo_make_external_locked
This fixes a missing bo->reusable = false in iris_bo_export_gem_handle. Reviewed-by: Chris Wilson <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_bufmgr.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c
index dfaba84b499..992bbd90b3a 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -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;