From: Aleksander Morgado Date: Thu, 6 Jul 2017 21:18:57 +0000 (+0200) Subject: etnaviv: fix refcnt initialization in etna_screen X-Git-Tag: android-x86-7.1-r1~9^2~15 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=401c37f500f351272dede9e7464d836183dafac4;p=android-x86%2Fexternal-mesa.git 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@lists.freedesktop.org Signed-off-by: Aleksander Morgado Reviewed-by: Christian Gmeiner Reviewed-by: Lucas Stach (cherry picked from commit 5d8514de14bd27170293bb373e06f5ff43c708ad) --- diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index 8b251467691..5f1d2802209 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -752,6 +752,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");