[PATCH] dma-fence: fix free sync object incorrectly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The function dma_fence_free() works fine because
struct dma_fence is the first member of sync object.

Use `kfree` make it more reasonable.

Signed-off-by: wangshumin <pdsrazor@xxxxxxxxx>
---
 drivers/dma-buf/dma-fence-array.c | 2 +-
 drivers/dma-buf/dma-fence-chain.c | 2 +-
 drivers/dma-buf/sw_sync.c         | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index cb1bacb5a42b..fc52d837e579 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -120,7 +120,7 @@ static void dma_fence_array_release(struct dma_fence *fence)
 		dma_fence_put(array->fences[i]);
 
 	kfree(array->fences);
-	dma_fence_free(fence);
+	kfree(array);
 }
 
 const struct dma_fence_ops dma_fence_array_ops = {
diff --git a/drivers/dma-buf/dma-fence-chain.c b/drivers/dma-buf/dma-fence-chain.c
index 06f8ef97c6e8..b29e1f22f08e 100644
--- a/drivers/dma-buf/dma-fence-chain.c
+++ b/drivers/dma-buf/dma-fence-chain.c
@@ -203,7 +203,7 @@ static void dma_fence_chain_release(struct dma_fence *fence)
 	dma_fence_put(prev);
 
 	dma_fence_put(chain->fence);
-	dma_fence_free(fence);
+	kfree(chain);
 }
 
 const struct dma_fence_ops dma_fence_chain_ops = {
diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c
index 348b3a9170fa..80432eeb58c3 100644
--- a/drivers/dma-buf/sw_sync.c
+++ b/drivers/dma-buf/sw_sync.c
@@ -142,7 +142,7 @@ static void timeline_fence_release(struct dma_fence *fence)
 	spin_unlock_irqrestore(fence->lock, flags);
 
 	sync_timeline_put(parent);
-	dma_fence_free(fence);
+	kfree(pt);
 }
 
 static bool timeline_fence_signaled(struct dma_fence *fence)
-- 
2.17.1




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux