Look up BOs from the name table using the name parameter instead of req.handle (which at this point is always zero).
Signed-off-by: Philipp Zabel p.zabel@pengutronix.de Reviewed-by: Eric Engestrom eric@engestrom.ch --- Sorry for the resend, this time to the correct list. --- etnaviv/etnaviv_bo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etnaviv/etnaviv_bo.c b/etnaviv/etnaviv_bo.c index 4ad0434e..4fe877f1 100644 --- a/etnaviv/etnaviv_bo.c +++ b/etnaviv/etnaviv_bo.c @@ -173,7 +173,7 @@ struct etna_bo *etna_bo_from_name(struct etna_device *dev, uint32_t name) pthread_mutex_lock(&table_lock);
/* check name table first, to see if bo is already open: */ - bo = lookup_bo(dev->name_table, req.handle); + bo = lookup_bo(dev->name_table, name); if (bo) goto out_unlock;
Although etnaviv_drmif.h declared etna_bo_from_handle from the start, there was no implementation.
Signed-off-by: Philipp Zabel p.zabel@pengutronix.de --- etnaviv/etnaviv_bo.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/etnaviv/etnaviv_bo.c b/etnaviv/etnaviv_bo.c index 4fe877f1..75669572 100644 --- a/etnaviv/etnaviv_bo.c +++ b/etnaviv/etnaviv_bo.c @@ -135,6 +135,25 @@ struct etna_bo *etna_bo_new(struct etna_device *dev, uint32_t size, return bo; }
+struct etna_bo * +etna_bo_from_handle(struct etna_device *dev, uint32_t handle, uint32_t size) +{ + struct etna_bo *bo = NULL; + + pthread_mutex_lock(&table_lock); + + bo = lookup_bo(dev->handle_table, handle); + if (bo) + goto out_unlock; + + bo = bo_from_handle(dev, size, handle, 0); + +out_unlock: + pthread_mutex_unlock(&table_lock); + + return bo; +} + struct etna_bo *etna_bo_ref(struct etna_bo *bo) { atomic_inc(&bo->refcnt);
2017-08-04 17:28 GMT+02:00 Philipp Zabel p.zabel@pengutronix.de:
Look up BOs from the name table using the name parameter instead of req.handle (which at this point is always zero).
Signed-off-by: Philipp Zabel p.zabel@pengutronix.de Reviewed-by: Eric Engestrom eric@engestrom.ch
Reviewed-by: Christian Gmeiner christian.gmeiner@gmail.com
Sorry for the resend, this time to the correct list.
etnaviv/etnaviv_bo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etnaviv/etnaviv_bo.c b/etnaviv/etnaviv_bo.c index 4ad0434e..4fe877f1 100644 --- a/etnaviv/etnaviv_bo.c +++ b/etnaviv/etnaviv_bo.c @@ -173,7 +173,7 @@ struct etna_bo *etna_bo_from_name(struct etna_device *dev, uint32_t name) pthread_mutex_lock(&table_lock);
/* check name table first, to see if bo is already open: */
bo = lookup_bo(dev->name_table, req.handle);
bo = lookup_bo(dev->name_table, name); if (bo) goto out_unlock;
-- 2.11.0
etnaviv mailing list etnaviv@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/etnaviv
greets -- Christian Gmeiner, MSc
dri-devel@lists.freedesktop.org