summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dma-buf/dma-fence-array.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index 67eb7c8fb88c..0350829ba62e 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -144,3 +144,29 @@ struct dma_fence_array *dma_fence_array_create(int num_fences,
144 return array; 144 return array;
145} 145}
146EXPORT_SYMBOL(dma_fence_array_create); 146EXPORT_SYMBOL(dma_fence_array_create);
147
148/**
149 * dma_fence_match_context - Check if all fences are from the given context
150 * @fence: [in] fence or fence array
151 * @context: [in] fence context to check all fences against
152 *
153 * Checks the provided fence or, for a fence array, all fences in the array
154 * against the given context. Returns false if any fence is from a different
155 * context.
156 */
157bool dma_fence_match_context(struct dma_fence *fence, u64 context)
158{
159 struct dma_fence_array *array = to_dma_fence_array(fence);
160 unsigned i;
161
162 if (!dma_fence_is_array(fence))
163 return fence->context == context;
164
165 for (i = 0; i < array->num_fences; i++) {
166 if (array->fences[i]->context != context)
167 return false;
168 }
169
170 return true;
171}
172EXPORT_SYMBOL(dma_fence_match_context);