mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-10 11:30:49 +00:00
drm/i915: Check that the relocation points to within the target
Eric noted a potential concern with the low bits not being strictly used as part of the absolute offset (instead part of the command stream to the GPU), but in practice that should not be an issue. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Tested-by: Andy Whitcroft <apw@canonical.com> Cc: Eric Anholt <eric@anholt.net> CC: stable@kernel.org Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
edb8195642
commit
cd0b9fb400
@ -3158,6 +3158,16 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (reloc->delta >= target_obj->size) {
|
||||
DRM_ERROR("Relocation beyond target object bounds: "
|
||||
"obj %p target %d delta %d size %d.\n",
|
||||
obj, reloc->target_handle,
|
||||
(int) reloc->delta, (int) target_obj->size);
|
||||
drm_gem_object_unreference(target_obj);
|
||||
i915_gem_object_unpin(obj);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (reloc->write_domain & I915_GEM_DOMAIN_CPU ||
|
||||
reloc->read_domains & I915_GEM_DOMAIN_CPU) {
|
||||
DRM_ERROR("reloc with read/write CPU domains: "
|
||||
|
Loading…
Reference in New Issue
Block a user