Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / drivers / dma-buf / sync_file.c
index abb5fda..b29a9e8 100644 (file)
@@ -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);
@@ -253,10 +254,8 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
        for (; i_b < b_num_fences; i_b++)
                add_fence(fences, &i, b_fences[i_b]);
 
-       if (i == 0) {
-               add_fence(fences, &i, a_fences[0]);
-               i++;
-       }
+       if (i == 0)
+               fences[i++] = fence_get(a_fences[0]);
 
        if (num_fences > i) {
                nfences = krealloc(fences, i * sizeof(*fences),