aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/dma-buf/dma-fence.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
index 8025a891d3e9..ff0cd6eae766 100644
--- a/drivers/dma-buf/dma-fence.c
+++ b/drivers/dma-buf/dma-fence.c
@@ -149,9 +149,12 @@ int dma_fence_signal_locked(struct dma_fence *fence)
149 trace_dma_fence_signaled(fence); 149 trace_dma_fence_signaled(fence);
150 } 150 }
151 151
152 list_for_each_entry_safe(cur, tmp, &fence->cb_list, node) { 152 if (!list_empty(&fence->cb_list)) {
153 list_del_init(&cur->node); 153 list_for_each_entry_safe(cur, tmp, &fence->cb_list, node) {
154 cur->func(fence, cur); 154 INIT_LIST_HEAD(&cur->node);
155 cur->func(fence, cur);
156 }
157 INIT_LIST_HEAD(&fence->cb_list);
155 } 158 }
156 return ret; 159 return ret;
157} 160}