drm/i915: move vma sanity checking into i915_vma_bind
If we move the sanity checking from gen8_alloc_va_range_3lvl and gen6_alloc_va_range into i915_vma_bind, we will increase our coverage to now both callbacks. We also convert each WARN_ON over to a GEM_WARN_ON. Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20161213203222.32564-2-matthew.auld@intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
17cfde60a1
commit
7a0499a4b8
|
@ -1303,15 +1303,6 @@ static int gen8_alloc_va_range_3lvl(struct i915_address_space *vm,
|
|||
uint32_t pdpes = I915_PDPES_PER_PDP(dev_priv);
|
||||
int ret;
|
||||
|
||||
/* Wrap is never okay since we can only represent 48b, and we don't
|
||||
* actually use the other side of the canonical address space.
|
||||
*/
|
||||
if (WARN_ON(start + length < start))
|
||||
return -ENODEV;
|
||||
|
||||
if (WARN_ON(start + length > vm->total))
|
||||
return -ENODEV;
|
||||
|
||||
ret = alloc_gen8_temp_bitmaps(&new_page_dirs, &new_page_tables, pdpes);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -1929,9 +1920,6 @@ static int gen6_alloc_va_range(struct i915_address_space *vm,
|
|||
uint32_t pde;
|
||||
int ret;
|
||||
|
||||
if (WARN_ON(start_in + length_in > ppgtt->base.total))
|
||||
return -ENODEV;
|
||||
|
||||
start = start_save = start_in;
|
||||
length = length_save = length_in;
|
||||
|
||||
|
|
|
@ -176,6 +176,12 @@ int i915_vma_bind(struct i915_vma *vma, enum i915_cache_level cache_level,
|
|||
if (bind_flags == 0)
|
||||
return 0;
|
||||
|
||||
if (GEM_WARN_ON(vma->node.start + vma->node.size < vma->node.start))
|
||||
return -ENODEV;
|
||||
|
||||
if (GEM_WARN_ON(vma->node.start + vma->node.size > vma->vm->total))
|
||||
return -ENODEV;
|
||||
|
||||
if (vma_flags == 0 && vma->vm->allocate_va_range) {
|
||||
trace_i915_va_alloc(vma);
|
||||
ret = vma->vm->allocate_va_range(vma->vm,
|
||||
|
|
Loading…
Reference in New Issue