Message ID | 1466695790-2833-5-git-send-email-gustavo@padovan.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 23, 2016 at 12:29:49PM -0300, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@collabora.co.uk> > > This function returns a copy of the array of fences. > > Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> > --- > 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; return kmemdup(array->fences, array->num_fences * sizeof(*array->fences), GFP_KERNEL);
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,