diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 10 |
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 6fe54db8f33c..fba37e9f775d 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -3367,6 +3367,16 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, | |||
3367 | } | 3367 | } |
3368 | 3368 | ||
3369 | /* Validate that the target is in a valid r/w GPU domain */ | 3369 | /* Validate that the target is in a valid r/w GPU domain */ |
3370 | if (reloc->write_domain & (reloc->write_domain - 1)) { | ||
3371 | DRM_ERROR("reloc with multiple write domains: " | ||
3372 | "obj %p target %d offset %d " | ||
3373 | "read %08x write %08x", | ||
3374 | obj, reloc->target_handle, | ||
3375 | (int) reloc->offset, | ||
3376 | reloc->read_domains, | ||
3377 | reloc->write_domain); | ||
3378 | return -EINVAL; | ||
3379 | } | ||
3370 | if (reloc->write_domain & I915_GEM_DOMAIN_CPU || | 3380 | if (reloc->write_domain & I915_GEM_DOMAIN_CPU || |
3371 | reloc->read_domains & I915_GEM_DOMAIN_CPU) { | 3381 | reloc->read_domains & I915_GEM_DOMAIN_CPU) { |
3372 | DRM_ERROR("reloc with read/write CPU domains: " | 3382 | DRM_ERROR("reloc with read/write CPU domains: " |