aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 725b4484a092..c60ca32f65d2 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3158,6 +3158,16 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
3158 return -EINVAL; 3158 return -EINVAL;
3159 } 3159 }
3160 3160
3161 if (reloc->delta >= target_obj->size) {
3162 DRM_ERROR("Relocation beyond target object bounds: "
3163 "obj %p target %d delta %d size %d.\n",
3164 obj, reloc->target_handle,
3165 (int) reloc->delta, (int) target_obj->size);
3166 drm_gem_object_unreference(target_obj);
3167 i915_gem_object_unpin(obj);
3168 return -EINVAL;
3169 }
3170
3161 if (reloc->write_domain & I915_GEM_DOMAIN_CPU || 3171 if (reloc->write_domain & I915_GEM_DOMAIN_CPU ||
3162 reloc->read_domains & I915_GEM_DOMAIN_CPU) { 3172 reloc->read_domains & I915_GEM_DOMAIN_CPU) {
3163 DRM_ERROR("reloc with read/write CPU domains: " 3173 DRM_ERROR("reloc with read/write CPU domains: "