[Intel-gfx] [PATCH v2] drm/i915: Update size upon return from GEM_CREATE

Chris Wilson chris at chris-wilson.co.uk
Tue Mar 26 17:32:25 UTC 2019


Quoting Vanshidhar Konda (2019-03-26 17:29:07)
> On Tue, Mar 26, 2019 at 06:02:18PM +0100, Michał Winiarski wrote:
> >Since GEM_CREATE is trying to outsmart the user by rounding up unaligned
> >objects, we used to update the size returned to userspace.
> >This update seems to have been lost throughout the history.
> >
> >v2: Use round_up(), reorder locals (Chris)
> >
> >References: ff72145badb8 ("drm: dumb scanout create/mmap for intel/radeon (v3)")
> >Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>
> >Cc: Chris Wilson <chris at chris-wilson.co.uk>
> >Cc: Janusz Krzysztofik <janusz.krzysztofik at intel.com>
> >Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> >Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
> >---
> > drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
> > 1 file changed, 7 insertions(+), 5 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> >index f6cdd5fb9deb..e506e43cfade 100644
> >--- a/drivers/gpu/drm/i915/i915_gem.c
> >+++ b/drivers/gpu/drm/i915/i915_gem.c
> >@@ -622,14 +622,15 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj,
> > static int
> > i915_gem_create(struct drm_file *file,
> >               struct drm_i915_private *dev_priv,
> >-              u64 size,
> >+              u64 *size_p,
> >               u32 *handle_p)
> > {
> >       struct drm_i915_gem_object *obj;
> >-      int ret;
> >       u32 handle;
> >+      u64 size;
> >+      int ret;
> >
> >-      size = roundup(size, PAGE_SIZE);
> >+      size = round_up(*size_p, PAGE_SIZE);
> >       if (size == 0)
> >               return -EINVAL;
> >
> 
> Does it make more sense to check the size prior to doing a roundup?

The only failure conditions known at this point are size==0 and
size > -PAGE_SIZE which is more concisely handled as a single test
afterwards.
-Chris


More information about the Intel-gfx mailing list