On Thu, Jun 23, 2016 at 12:29:48PM -0300, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > > get_fences() should return a copy of all fences in the fence as some > fence subclass (such as fence_array) can store more than one fence at > time. > > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > --- > drivers/dma-buf/fence.c | 14 ++++++++++++++ > include/linux/fence.h | 3 +++ > 2 files changed, 17 insertions(+) > > diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c > index 4e61afb..f4094fd 100644 > --- a/drivers/dma-buf/fence.c > +++ b/drivers/dma-buf/fence.c > @@ -185,6 +185,20 @@ void fence_release(struct kref *kref) > } > EXPORT_SYMBOL(fence_release); > > +struct fence **fence_get_fences(struct fence *fence) Returning an array, but not telling the caller how many elements in the array? > +{ > + if (fence->ops->get_fences) { > + return fence->ops->get_fences(fence); > + } else { > + struct fence **fences = kmalloc(sizeof(**fences), GFP_KERNEL); One too many * (=> sizeof(struct fence), not sizeof(struct fence *)) return kmemdup(&fence, sizeof(fence), GFP_KERNEL); The documentation should emphasize that the fences in the returned array have a "borrowed" reference (i.e. it does not return a new reference to each fence). -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel