mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
RK3368 GPU: Fixup some bug
1.Fixup memleak on pvr_create_pt_fence 2.Fixup crash on pvr_sync_has_signal Change-Id: I999c8e96d0cab2814f5fdfbd8ea57ae6c30cd961 Signed-off-by: Li Huang <putin.li@rock-chips.com>
This commit is contained in:
@@ -916,6 +916,7 @@ static void pvr_fence_release(struct dma_fence *fence)
|
||||
unsigned long flags;
|
||||
|
||||
/*-------------------------------------------------------*/
|
||||
spin_lock_irqsave(fence->lock, flags);
|
||||
|
||||
/* 释放当前 pvr_sync_pt 实例的 private_data. */
|
||||
pvr_sync_free_sync(pt);
|
||||
@@ -923,7 +924,6 @@ static void pvr_fence_release(struct dma_fence *fence)
|
||||
/*-------------------------------------------------------*/
|
||||
/* 参考自 timeline_fence_release(). */
|
||||
|
||||
spin_lock_irqsave(fence->lock, flags);
|
||||
if (!list_empty(&pt->link)) {
|
||||
list_del(&pt->link);
|
||||
rb_erase(&pt->node, &parent->pt_tree);
|
||||
@@ -1394,6 +1394,7 @@ enum PVRSRV_ERROR pvr_sync_append_fences(
|
||||
|
||||
//update_fence = sync_fence_create(name, &update_point->pt);
|
||||
update_fence = sync_file_create(&update_point->pt.base);
|
||||
dma_fence_put(&update_point->pt.base);
|
||||
if (!update_fence) {
|
||||
struct pvr_sync_native_sync_prim *fence_prim =
|
||||
update_point->sync_data->kernel->fence_sync;
|
||||
|
||||
Reference in New Issue
Block a user