hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c
....@@ -77,7 +77,7 @@
7777 struct mali_internal_sync_fence_waiter *waiter;
7878 #endif
7979 struct mali_internal_sync_fence *sync_fence;
80
- int ret;
80
+ int ret = 0;
8181 MALI_DEBUG_ASSERT_POINTER(cb);
8282 MALI_IGNORE(fence);
8383 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
....@@ -92,7 +92,11 @@
9292 if (ret)
9393 wake_up_all(&sync_fence->wq);
9494 #else
95
- ret = sync_fence->fence->ops->signaled(sync_fence->fence);
95
+ if (!sync_fence)
96
+ return;
97
+
98
+ if ((sync_fence->fence) && (sync_fence->fence->ops) && (sync_fence->fence->ops->signaled))
99
+ ret = sync_fence->fence->ops->signaled(sync_fence->fence);
96100
97101 if (0 > ret)
98102 MALI_PRINT_ERROR(("Mali internal sync:Failed to wait fence 0x%x for sync_fence 0x%x.\n", fence, sync_fence));
....@@ -682,7 +686,7 @@
682686
683687
684688 spin_lock_irqsave(fence->lock, flags);
685
- if (WARN_ON_ONCE(!list_empty(&sync_pt->sync_pt_list)))
689
+ if (!list_empty(&sync_pt->sync_pt_list))
686690 list_del(&sync_pt->sync_pt_list);
687691 spin_unlock_irqrestore(fence->lock, flags);
688692