summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
diff options
context:
space:
mode:
authorIvan.liu <xiaowen.liu@nxp.com>2018-12-13 11:15:21 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:35:40 +0800
commit97e64389c92dae007513c256b71e5c5350a03829 (patch)
tree9138420ba7e22589ea04ffef3723f3d6598cc8b0 /drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
parentcd38f4c68bd7e962d98b382a6a3a1eaa9cddf2b8 (diff)
MA-13763 [#imx-1237] Fix fence signal memory leakage issue.
The signal id is missed when set to fence. Then signal structure will not be freed at last. Set correct signal id to fence to fix this issue. Change-Id: I6a67dac0f6979183796cb8e9f2ac7aef6623ac00 Signed-off-by: Ivan.liu <xiaowen.liu@nxp.com>
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c')
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
index 12d8d3537fd1..3b5a2913a922 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
@@ -319,7 +319,7 @@ struct dma_fence * viv_fence_create(struct viv_sync_timeline *timeline,
spin_lock_init(&fence->lock);
- fence->signal = signal;
+ fence->signal = (gctSIGNAL)(uintptr_t)signal->id;
fence->parent = timeline;
seqno = (unsigned)atomic64_inc_return(&timeline->seqno);
@@ -353,6 +353,8 @@ struct dma_fence * viv_fence_create(struct viv_sync_timeline *timeline,
fence->signal = NULL;
dma_fence_signal_locked((struct dma_fence*)fence);
+ dma_fence_put((struct dma_fence*)fence);
+ fence = NULL;
}
return (struct dma_fence*)fence;