Mesa (master): etnaviv: fix refcnt initialization in etna_screen

Lucas Stach lynxeye at kemper.freedesktop.org
Fri Jul 7 13:41:16 UTC 2017


Module: Mesa
Branch: master
Commit: 5d8514de14bd27170293bb373e06f5ff43c708ad
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d8514de14bd27170293bb373e06f5ff43c708ad

Author: Aleksander Morgado <aleksander at aleksander.es>
Date:   Thu Jul  6 23:18:57 2017 +0200

etnaviv: fix refcnt initialization in etna_screen

Despite being a member of the etna_screen struct, 'refcnt' is used by
the winsys-specific logic to track the reference count of the object
managed in a hash table. When the count reaches zero, the pipe screen
is removed from the table and destroyed.

Fix the logic by initializing the refcnt to 1 when screen created.
This initialization is done in etna_screen_create(), to follow the
same logic as in freedreno and virgl.

Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs")
Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Aleksander Morgado <aleksander at aleksander.es>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Reviewed-by: Lucas Stach <l.stach at pengutronix.de>

---

 src/gallium/drivers/etnaviv/etnaviv_screen.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index eefb51c5da..fa0cbd9076 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
@@ -772,6 +772,7 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
    screen->dev = dev;
    screen->gpu = gpu;
    screen->ro = renderonly_dup(ro);
+   screen->refcnt = 1;
 
    if (!screen->ro) {
       DBG("could not create renderonly object");




More information about the mesa-commit mailing list