summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2020-01-30 01:40:31 +0100
committerDylan Baker <dylan@pnwbakers.com>2020-02-04 08:08:18 -0800
commit88986b59f3185c04a68f331942a45e64c46913d6 (patch)
tree98fdff8fedf9ebe86f0798b4600deb648e75eee7
parentd78f3577e6b57c7a6bce0d621240dd3bf6edf663 (diff)
downloadmesa-88986b59f3185c04a68f331942a45e64c46913d6.tar.gz
etnaviv: Destroy rsc->pending_ctx set in etna_resource_destroy()
Destroy rsc->pending_ctx set in etna_resource_destroy(), otherwise the memory is allocated, never free'd, and becomes unreachable. This fixes a memory leak. Fixes: 9e672e4d20fb ("etnaviv: keep references to pending resources") Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3633> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3633> (cherry picked from commit c32bd325e7688c781b7e5de58a2d0534c82f00a0)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_resource.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index bbb7b71b280..4bd660f5486 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -76,7 +76,7 @@
"description": "etnaviv: Destroy rsc->pending_ctx set in etna_resource_destroy()",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "9e672e4d20fb77e1b39aee29f9e8e76a5c2af68e"
},
diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c
index f83e9b99a5e..db5d1d930da 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_resource.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c
@@ -468,6 +468,7 @@ etna_resource_destroy(struct pipe_screen *pscreen, struct pipe_resource *prsc)
struct etna_resource *rsc = etna_resource(prsc);
assert(!_mesa_set_next_entry(rsc->pending_ctx, NULL));
+ _mesa_set_destroy(rsc->pending_ctx, NULL);
if (rsc->bo)
etna_bo_del(rsc->bo);