[Intel-gfx] [PATCH 6/7] drm/i915: don't allocate the ring in stolen if we lack aperture

Daniele Ceraolo Spurio daniele.ceraolospurio at intel.com
Tue Oct 29 21:46:46 UTC 2019



On 10/29/19 2:58 AM, Matthew Auld wrote:
> Since we have no way access it from the CPU. For such cases just
> fallback to internal objects.
> 

Since the problem is not limited to rings but it applies to all stolen 
objects, wouldn't it be better to just skip the stolen initialization or 
return an error from i915_gem_object_create_stolen()?

Daniele

> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_ring.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
> index fa01c1407760..ece20504d240 100644
> --- a/drivers/gpu/drm/i915/gt/intel_ring.c
> +++ b/drivers/gpu/drm/i915/gt/intel_ring.c
> @@ -108,7 +108,9 @@ static struct i915_vma *create_ring_vma(struct i915_ggtt *ggtt, int size)
>   	struct drm_i915_gem_object *obj;
>   	struct i915_vma *vma;
>   
> -	obj = i915_gem_object_create_stolen(i915, size);
> +	obj = ERR_PTR(-ENODEV);
> +	if (i915_ggtt_has_aperture(ggtt))
> +		obj = i915_gem_object_create_stolen(i915, size);
>   	if (IS_ERR(obj))
>   		obj = i915_gem_object_create_internal(i915, size);
>   	if (IS_ERR(obj))
> 


More information about the Intel-gfx mailing list