summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2014-08-26 18:43:54 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2014-08-27 09:01:26 +0200
commit9ab12fbac1d0ffc69eee17f59f4cf19ef106ecb7 (patch)
tree235d1455cc156100bacaf7e3e2652c222ce47676
parent4aefe679119bacc14e70ead920273675cab31c92 (diff)
downloadetna_viv-9ab12fbac1d0ffc69eee17f59f4cf19ef106ecb7.tar.gz
etna_viv-9ab12fbac1d0ffc69eee17f59f4cf19ef106ecb7.tar.xz
Ensure that the signals are properly destroyed in enta_free()
etna_create() allocates six signals, one for the context and one per allocated command buffer. etna_free() cleans up the command buffers, but fails to clean up the signals which etna_create() allocated. Fix this oversight. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--src/etnaviv/etna.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/etnaviv/etna.c b/src/etnaviv/etna.c
index a79f4b1..c33527e 100644
--- a/src/etnaviv/etna.c
+++ b/src/etnaviv/etna.c
@@ -362,9 +362,11 @@ int etna_free(struct etna_ctx *ctx)
/* Free command buffers */
for(int x=0; x<NUM_COMMAND_BUFFERS; ++x)
{
+ viv_user_signal_destroy(ctx->conn, ctx->cmdbufi[x].sig_id);
etna_bo_del(ctx->conn, ctx->cmdbufi[x].bo, NULL);
ETNA_FREE(ctx->cmdbuf[x]);
}
+ viv_user_signal_destroy(ctx->conn, ctx->sig_id);
ETNA_FREE(ctx);
return ETNA_OK;
}