diff options
author | Marek Vasut <marex@denx.de> | 2020-01-30 01:40:31 +0100 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2020-02-04 08:08:18 -0800 |
commit | 88986b59f3185c04a68f331942a45e64c46913d6 (patch) | |
tree | 98fdff8fedf9ebe86f0798b4600deb648e75eee7 | |
parent | d78f3577e6b57c7a6bce0d621240dd3bf6edf663 (diff) | |
download | mesa-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.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_resource.c | 1 |
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); |