All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel <dri-devel@lists.freedesktop.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Will Deacon <will.deacon@arm.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Joerg Roedel <joro@8bytes.org>,
	"list@263.net:IOMMU DRIVERS <iommu@lists.linux-foundation.org>,
	Joerg Roedel <joro@8bytes.org>,"
	<iommu@lists.linux-foundation.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <maxime.ripard@bootlin.com>,
	Sean Paul <sean@poorly.run>, David Airlie <airlied@linux.ie>,
	Alyssa Rosenzweig <alyssa@rosenzweig.io>,
	Lyude Paul <lyude@redhat.com>, Eric Anholt <eric@anholt.net>,
	Neil Armstrong <narmstrong@baylibre.com>
Subject: Re: [PATCH v2 2/3] drm: Add a drm_gem_objects_lookup helper
Date: Mon, 1 Apr 2019 11:59:15 -0500	[thread overview]
Message-ID: <CAL_JsqJ4uppXc_Sti67z0ZBJ4sw1RPgNHCg6usqpUmbQcGQmpQ@mail.gmail.com> (raw)
In-Reply-To: <CAKMK7uE7-XV3cZxS8GT_EDa7yojOLPQi+LqkF85h_0z_JL6gYw@mail.gmail.com>

On Mon, Apr 1, 2019 at 8:07 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Mon, Apr 1, 2019 at 9:47 AM Rob Herring <robh@kernel.org> wrote:
> >
> > Similar to the single handle drm_gem_object_lookup(),
> > drm_gem_objects_lookup() takes an array of handles and returns an array
> > of GEM objects.
> >
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > Cc: Sean Paul <sean@poorly.run>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> >  drivers/gpu/drm/drm_gem.c | 46 +++++++++++++++++++++++++++++++--------
> >  include/drm/drm_gem.h     |  2 ++
> >  2 files changed, 39 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
> > index 388b3742e562..5c9bff45e5e1 100644
> > --- a/drivers/gpu/drm/drm_gem.c
> > +++ b/drivers/gpu/drm/drm_gem.c
> > @@ -663,6 +663,42 @@ void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
> >  }
> >  EXPORT_SYMBOL(drm_gem_put_pages);
> >
> > +/**
> > + * drm_gem_objects_lookup - look up GEM objects from an array of handles
> > + * @filp: DRM file private date
> > + * @handle: pointer to array of userspace handle
> > + * @count: size of handle array
> > + * @objs: pointer to array of drm_gem_object pointers
> > + *
> > + * Returns:
> > + *
> > + * @objs filled in with GEM object pointers. -ENOENT is returned on a lookup
> > + * failure. 0 is returned on success.
>
> Bonus points for adding references between the array and normal lookup
> functions to guide people around. Also a comment that the buffers need
> to be released with drm_gem_object_put().
>
> > + */
> > +int drm_gem_objects_lookup(struct drm_file *filp, u32 *handle, int count,
> > +                          struct drm_gem_object **objs)
>
> With a pointer to a pointer I'd expect this function to do the
> allocation, but it doesn't. Normal pointer is enough to pass an array.
> Also maybe make the handle pointer
> const, so it's clear that it's an input parameter.

I thought about doing the allocation here, but then I couldn't
implement the single drm_gem_object_lookup() using this function.
Maybe I can refactor in 3 functions making this one a static function.

Rob

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Sean Paul <sean@poorly.run>, Lyude Paul <lyude@redhat.com>,
	Eric Anholt <eric@anholt.net>,
	Maxime Ripard <maxime.ripard@bootlin.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Joerg Roedel <joro@8bytes.org>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Will Deacon <will.deacon@arm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	David Airlie <airlied@linux.ie>,
	"list@263.net:IOMMU DRIVERS <iommu@lists.linux-foundation.org>,
	Joerg Roedel <joro@8bytes.org>,
	" <iommu@lists.linux-foundation.org>,
	Alyssa Rosenzweig <alyssa@rosenzweig.io>,
	Robin Murphy <robin.murphy@arm.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 2/3] drm: Add a drm_gem_objects_lookup helper
Date: Mon, 1 Apr 2019 11:59:15 -0500	[thread overview]
Message-ID: <CAL_JsqJ4uppXc_Sti67z0ZBJ4sw1RPgNHCg6usqpUmbQcGQmpQ@mail.gmail.com> (raw)
In-Reply-To: <CAKMK7uE7-XV3cZxS8GT_EDa7yojOLPQi+LqkF85h_0z_JL6gYw@mail.gmail.com>

On Mon, Apr 1, 2019 at 8:07 AM Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Mon, Apr 1, 2019 at 9:47 AM Rob Herring <robh@kernel.org> wrote:
> >
> > Similar to the single handle drm_gem_object_lookup(),
> > drm_gem_objects_lookup() takes an array of handles and returns an array
> > of GEM objects.
> >
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > Cc: Sean Paul <sean@poorly.run>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> >  drivers/gpu/drm/drm_gem.c | 46 +++++++++++++++++++++++++++++++--------
> >  include/drm/drm_gem.h     |  2 ++
> >  2 files changed, 39 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
> > index 388b3742e562..5c9bff45e5e1 100644
> > --- a/drivers/gpu/drm/drm_gem.c
> > +++ b/drivers/gpu/drm/drm_gem.c
> > @@ -663,6 +663,42 @@ void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
> >  }
> >  EXPORT_SYMBOL(drm_gem_put_pages);
> >
> > +/**
> > + * drm_gem_objects_lookup - look up GEM objects from an array of handles
> > + * @filp: DRM file private date
> > + * @handle: pointer to array of userspace handle
> > + * @count: size of handle array
> > + * @objs: pointer to array of drm_gem_object pointers
> > + *
> > + * Returns:
> > + *
> > + * @objs filled in with GEM object pointers. -ENOENT is returned on a lookup
> > + * failure. 0 is returned on success.
>
> Bonus points for adding references between the array and normal lookup
> functions to guide people around. Also a comment that the buffers need
> to be released with drm_gem_object_put().
>
> > + */
> > +int drm_gem_objects_lookup(struct drm_file *filp, u32 *handle, int count,
> > +                          struct drm_gem_object **objs)
>
> With a pointer to a pointer I'd expect this function to do the
> allocation, but it doesn't. Normal pointer is enough to pass an array.
> Also maybe make the handle pointer
> const, so it's clear that it's an input parameter.

I thought about doing the allocation here, but then I couldn't
implement the single drm_gem_object_lookup() using this function.
Maybe I can refactor in 3 functions making this one a static function.

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-04-01 16:59 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-01  7:47 [PATCH v2 0/3] Initial Panfrost driver Rob Herring
2019-04-01  7:47 ` Rob Herring
2019-04-01  7:47 ` [PATCH v3 1/3] iommu: io-pgtable: Add ARM Mali midgard MMU page table format Rob Herring
2019-04-01  7:47   ` Rob Herring
2019-04-01  7:47   ` Rob Herring
2019-04-01 19:11   ` Robin Murphy
2019-04-01 19:11     ` Robin Murphy
2019-04-05 10:02     ` Robin Murphy
2019-04-05 10:02       ` Robin Murphy
2019-04-05 10:02       ` Robin Murphy
2019-04-11 13:15     ` Joerg Roedel
2019-04-11 13:15       ` Joerg Roedel
2019-04-11 13:15       ` Joerg Roedel
2019-04-05  9:42   ` Steven Price
2019-04-05  9:42     ` Steven Price
2019-04-05  9:42     ` Steven Price
2019-04-05  9:51     ` Robin Murphy
2019-04-05  9:51       ` Robin Murphy
2019-04-05 10:36       ` Steven Price
2019-04-05 10:36         ` Steven Price
2019-04-08  8:56         ` Steven Price
2019-04-08  8:56           ` Steven Price
2019-04-08  8:56           ` Steven Price
2019-04-01  7:47 ` [PATCH v2 2/3] drm: Add a drm_gem_objects_lookup helper Rob Herring
2019-04-01  7:47   ` Rob Herring
2019-04-01 13:06   ` Daniel Vetter
2019-04-01 13:06     ` Daniel Vetter
2019-04-01 13:48     ` Chris Wilson
2019-04-01 13:48       ` Chris Wilson
2019-04-01 13:48       ` Chris Wilson
2019-04-01 15:43       ` Eric Anholt
2019-04-01 15:43         ` Eric Anholt
2019-04-01 15:43         ` Eric Anholt
2019-04-08 20:09         ` Rob Herring
2019-04-08 20:09           ` Rob Herring
2019-04-08 20:09           ` Rob Herring
2019-04-09 16:55           ` Eric Anholt
2019-04-09 16:55             ` Eric Anholt
2019-04-09 16:55             ` Eric Anholt
2019-04-09 16:55             ` Eric Anholt
2019-04-01 16:59     ` Rob Herring [this message]
2019-04-01 16:59       ` Rob Herring
2019-04-01 18:22       ` Eric Anholt
2019-04-01 18:22         ` Eric Anholt
2019-04-01 18:22         ` Eric Anholt
2019-04-01  7:47 ` [PATCH v2 3/3] drm/panfrost: Add initial panfrost driver Rob Herring
2019-04-01  8:24   ` Neil Armstrong
2019-04-01  8:24     ` Neil Armstrong
2019-04-01 19:17     ` Robin Murphy
2019-04-01 19:17       ` Robin Murphy
2019-04-01 16:02   ` Eric Anholt
2019-04-01 16:02     ` Eric Anholt
2019-04-01 19:12   ` Robin Murphy
2019-04-01 19:12     ` Robin Murphy
2019-04-01 19:12     ` Robin Murphy
2019-04-02  0:33     ` Alyssa Rosenzweig
2019-04-02  0:33       ` Alyssa Rosenzweig
2019-04-02 11:23       ` Robin Murphy
2019-04-02 11:23         ` Robin Murphy
2019-04-03  4:57     ` Rob Herring
2019-04-03  4:57       ` Rob Herring
2019-04-03  4:57       ` Rob Herring
2019-04-05 12:57       ` Robin Murphy
2019-04-05 12:57         ` Robin Murphy
2019-04-05 12:57         ` Robin Murphy
2019-04-05 12:30   ` Steven Price
2019-04-05 16:16     ` Alyssa Rosenzweig
2019-04-05 16:16       ` Alyssa Rosenzweig
2019-04-05 16:16       ` Alyssa Rosenzweig
2019-04-05 16:42       ` Steven Price
2019-04-05 16:42         ` Steven Price
2019-04-05 16:42         ` Steven Price
2019-04-05 16:53         ` Alyssa Rosenzweig
2019-04-05 16:53           ` Alyssa Rosenzweig
2019-04-05 16:53           ` Alyssa Rosenzweig
2019-04-15  9:18         ` Daniel Vetter
2019-04-15  9:18           ` Daniel Vetter
2019-04-15  9:18           ` Daniel Vetter
2019-04-15  9:30           ` Steven Price
2019-04-15  9:30             ` Steven Price
2019-04-15  9:30             ` Steven Price
2019-04-16  7:51             ` Daniel Vetter
2019-04-16  7:51               ` Daniel Vetter
2019-04-16  7:51               ` Daniel Vetter
2019-04-16  7:51               ` Daniel Vetter
2019-04-08 21:04     ` Rob Herring
2019-04-08 21:04       ` Rob Herring
2019-04-08 21:04       ` Rob Herring
2019-04-08 21:04       ` Rob Herring
2019-04-09 15:56       ` Tomeu Vizoso
2019-04-09 15:56         ` Tomeu Vizoso
2019-04-09 15:56         ` Tomeu Vizoso
2019-04-09 15:56         ` Tomeu Vizoso
2019-04-09 16:15         ` Rob Herring
2019-04-09 16:15           ` Rob Herring
2019-04-09 16:15           ` Rob Herring
2019-04-09 16:15           ` Rob Herring
2019-04-10 10:28           ` Steven Price
2019-04-10 10:28             ` Steven Price
2019-04-10 10:28             ` Steven Price
2019-04-10 10:28             ` Steven Price
2019-04-10 10:19       ` Steven Price
2019-04-10 10:19         ` Steven Price
2019-04-10 10:19         ` Steven Price
2019-04-10 10:19         ` Steven Price
2019-04-10 11:50         ` Tomeu Vizoso
2019-04-10 11:50           ` Tomeu Vizoso
2019-04-10 11:50           ` Tomeu Vizoso
2019-04-10 11:50           ` Tomeu Vizoso
2019-04-01 15:05 ` [PATCH v2 0/3] Initial Panfrost driver Alyssa Rosenzweig
2019-04-01 15:05   ` Alyssa Rosenzweig
2019-04-01 15:05   ` Alyssa Rosenzweig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAL_JsqJ4uppXc_Sti67z0ZBJ4sw1RPgNHCg6usqpUmbQcGQmpQ@mail.gmail.com \
    --to=robh@kernel.org \
    --cc=airlied@linux.ie \
    --cc=alyssa@rosenzweig.io \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eric@anholt.net \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lyude@redhat.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=narmstrong@baylibre.com \
    --cc=robin.murphy@arm.com \
    --cc=sean@poorly.run \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.