> -----Original Message-----
> From: Intel-gfx [mailto:[email protected]] On Behalf
> Of Daniel Vetter
> Sent: Wednesday, August 06, 2014 2:05 PM
> To: Intel Graphics Development
> Cc: Daniel Vetter
> Subject: [Intel-gfx] [PATCH 07/15] drm/i915: Allow
> i915_gem_setup_global_gtt to fail
> 
> We already needs this just as a safety check in case the preallocation
> reservation dance fails. But we definitely need this to be able to
> move tha aliasing ppgtt setup back out of the context code to this
> place, where it belongs.
> 
> Signed-off-by: Daniel Vetter <[email protected]>
> ---
>  drivers/gpu/drm/i915/i915_gem.c     |  7 ++++++-
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 16 ++++++++++------
>  drivers/gpu/drm/i915/i915_gem_gtt.h |  4 ++--
>  3 files changed, 18 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c
> b/drivers/gpu/drm/i915/i915_gem.c
> index f4e57fe05c6a..d8399ee622b9 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4762,7 +4762,12 @@ int i915_gem_init(struct drm_device *dev)
>                       DRM_DEBUG_DRIVER("allow wake ack timed
> out\n");
>       }
> 
> -     i915_gem_init_userptr(dev);
> +     ret = i915_gem_init_userptr(dev);
> +     if (ret) {
> +             mutex_unlock(&dev->struct_mutex);
> +             return ret;
> +     }
> +
>       i915_gem_init_global_gtt(dev);
> 
>       ret = i915_gem_context_init(dev);
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 3753bf184865..4fa7807ed4d5 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -1709,10 +1709,10 @@ static void i915_gtt_color_adjust(struct
> drm_mm_node *node,
>       }
>  }
> 
> -void i915_gem_setup_global_gtt(struct drm_device *dev,
> -                            unsigned long start,
> -                            unsigned long mappable_end,
> -                            unsigned long end)
> +int i915_gem_setup_global_gtt(struct drm_device *dev,
> +                           unsigned long start,
> +                           unsigned long mappable_end,
> +                           unsigned long end)
>  {
>       /* Let GEM Manage all of the aperture.
>        *
> @@ -1745,8 +1745,10 @@ void i915_gem_setup_global_gtt(struct
> drm_device *dev,
> 
>               WARN_ON(i915_gem_obj_ggtt_bound(obj));
>               ret = drm_mm_reserve_node(&ggtt_vm->mm, &vma-
> >node);
> -             if (ret)
> -                     DRM_DEBUG_KMS("Reservation failed\n");
> +             if (ret) {
> +                     DRM_DEBUG_KMS("Reservation failed: %i\n", ret);
> +                     return ret;
> +             }
>               obj->has_global_gtt_mapping = 1;
>       }
> 
> @@ -1763,6 +1765,8 @@ void i915_gem_setup_global_gtt(struct
> drm_device *dev,
> 
>       /* And finally clear the reserved guard page */
>       ggtt_vm->clear_range(ggtt_vm, end - PAGE_SIZE, PAGE_SIZE, true);
> +
> +     return 0;
>  }
> 
>  void i915_gem_init_global_gtt(struct drm_device *dev)
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h
> b/drivers/gpu/drm/i915/i915_gem_gtt.h
> index 0b04ef6167f8..bea3541d5525 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
> @@ -271,8 +271,8 @@ struct i915_hw_ppgtt {
> 
>  int i915_gem_gtt_init(struct drm_device *dev);
>  void i915_gem_init_global_gtt(struct drm_device *dev);
> -void i915_gem_setup_global_gtt(struct drm_device *dev, unsigned long
> start,
> -                            unsigned long mappable_end, unsigned long
> end);
> +int i915_gem_setup_global_gtt(struct drm_device *dev, unsigned long
> start,
> +                           unsigned long mappable_end, unsigned long
> end);
> 
>  bool intel_enable_ppgtt(struct drm_device *dev, bool full);
> 

Reviewed-by: Michel Thierry <[email protected]>

> --
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to