dma-buf/sw_sync: put fence reference from the fence creation
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>
Wed, 26 Oct 2016 20:59:59 +0000 (18:59 -0200)
committerSumit Semwal <sumit.semwal@linaro.org>
Tue, 8 Nov 2016 18:27:40 +0000 (23:57 +0530)
Once sw_sync_ioctl_create_fence() returns we no longer have the
*pt pointer to the fence base object thus we need to put the reference
we have from the fence creation to keep a correct reference accounting.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1477515599-7685-1-git-send-email-gustavo@padovan.org
drivers/dma-buf/sw_sync.c

index 7aa4d7b1ba50f57f0f8823f23d245d2ff4c87290..69c5ff36e2f9e4f57ab72b87da2634332c97fe55 100644 (file)
@@ -316,8 +316,8 @@ static long sw_sync_ioctl_create_fence(struct sync_timeline *obj,
        }
 
        sync_file = sync_file_create(&pt->base);
+       dma_fence_put(&pt->base);
        if (!sync_file) {
-               dma_fence_put(&pt->base);
                err = -ENOMEM;
                goto err;
        }