From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751751AbcFWPa2 (ORCPT ); Thu, 23 Jun 2016 11:30:28 -0400 Received: from mail-yw0-f196.google.com ([209.85.161.196]:36137 "EHLO mail-yw0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751209AbcFWPaY (ORCPT ); Thu, 23 Jun 2016 11:30:24 -0400 From: Gustavo Padovan To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, Daniel Stone , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , laurent.pinchart@ideasonboard.com, seanpaul@google.com, marcheu@google.com, m.chehab@samsung.com, Sumit Semwal , Maarten Lankhorst , Gustavo Padovan Subject: [RFC 4/5] dma-buf/fence-array: add fence_array_get_fences() Date: Thu, 23 Jun 2016 12:29:49 -0300 Message-Id: <1466695790-2833-5-git-send-email-gustavo@padovan.org> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1466695790-2833-1-git-send-email-gustavo@padovan.org> References: <1466695790-2833-1-git-send-email-gustavo@padovan.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gustavo Padovan This function returns a copy of the array of fences. Signed-off-by: Gustavo Padovan --- 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