aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_gem_execbuffer.c
diff options
context:
space:
mode:
authorBrad Volkin <bradley.d.volkin@intel.com>2014-12-11 12:13:10 -0800
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-12-16 10:39:09 +0100
commitb9ffd80ed659c559152c042e74741f4f60cac691 (patch)
tree13d37c669c3fb47d675984fd3e6b434d494e4f3d /drivers/gpu/drm/i915/i915_gem_execbuffer.c
parent78a423772d08eb5a048765a883b5b5a308ea0d0f (diff)
drm/i915: Use batch length instead of object size in command parser
Previously we couldn't trust the user-supplied batch length because it came directly from userspace (i.e. untrusted code). It would have affected what commands software parsed without regard to what hardware would actually execute, leaving a potential hole. With the parser now copying the user supplied batch buffer and writing MI_NOP commands to any space after the copied region, we can safely use the batch length input. This should be a performance win as the actual batch length is frequently much smaller than the allocated object size. v2: Fix handling of non-zero batch_start_offset Issue: VIZ-4719 Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com> Reviewed-By: Jon Bloomfield <jon.bloomfield@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_execbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index cadb04d964e0..5973e2005e89 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1421,6 +1421,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
batch_obj,
shadow_batch_obj,
args->batch_start_offset,
+ args->batch_len,
file->is_master);
i915_gem_object_ggtt_unpin(shadow_batch_obj);