[PATCH] dma-buf/sync_file: free fences array in num_fences is 1

Gustavo Padovan gustavo at padovan.org
Wed Sep 21 07:20:19 UTC 2016


From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>

When merging sync_files there is a case when we can end up with only one
fence in the merged sync_file: when all fences belong to the same
timeline.

So for this case a fence_array is not created instead we just assigned the
fence to sync_file->fence. Then we do not use the fences array anymore nor
does free it.

This patch frees the array.

Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
Reported-by:  Chris Wilson <chris at chris-wilson.co.uk>
---
 drivers/dma-buf/sync_file.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
index 706eea9..9ed4f9f 100644
--- a/drivers/dma-buf/sync_file.c
+++ b/drivers/dma-buf/sync_file.c
@@ -150,6 +150,7 @@ static int sync_file_set_fence(struct sync_file *sync_file,
 	 */
 	if (num_fences == 1) {
 		sync_file->fence = fences[0];
+		kfree(fences);
 	} else {
 		array = fence_array_create(num_fences, fences,
 					   fence_context_alloc(1), 1, false);
-- 
2.5.5



More information about the dri-devel mailing list