From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> This function returns a copy of the array of fences. Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> --- drivers/dma-buf/fence-array.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/dma-buf/fence-array.c b/drivers/dma-buf/fence-array.c index 601448a..ce98249 100644 --- a/drivers/dma-buf/fence-array.c +++ b/drivers/dma-buf/fence-array.c @@ -33,6 +33,19 @@ static const char *fence_array_get_timeline_name(struct fence *fence) return "unbound"; } +static struct fence **fence_array_get_fences(struct fence *fence) +{ + struct fence_array *array = to_fence_array(fence); + struct fence **fences; + + fences = kmalloc(array->num_fences * sizeof(*fences), GFP_KERNEL); + if (!fences) + return NULL; + + memcpy(fences, array->fences, array->num_fences * sizeof(*fences)); + return fences; +} + static void fence_array_cb_func(struct fence *f, struct fence_cb *cb) { struct fence_array_cb *array_cb = @@ -109,6 +122,7 @@ static void fence_array_release(struct fence *fence) const struct fence_ops fence_array_ops = { .get_driver_name = fence_array_get_driver_name, .get_timeline_name = fence_array_get_timeline_name, + .get_fences = fence_array_get_fences, .enable_signaling = fence_array_enable_signaling, .signaled = fence_array_signaled, .wait = fence_default_wait, -- 2.5.5 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel