diff options
author | Brad Volkin <bradley.d.volkin@intel.com> | 2014-12-11 12:13:10 -0800 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-12-16 10:39:09 +0100 |
commit | b9ffd80ed659c559152c042e74741f4f60cac691 (patch) | |
tree | 13d37c669c3fb47d675984fd3e6b434d494e4f3d /drivers/gpu/drm/i915/i915_gem_execbuffer.c | |
parent | 78a423772d08eb5a048765a883b5b5a308ea0d0f (diff) | |
download | op-kernel-dev-b9ffd80ed659c559152c042e74741f4f60cac691.zip op-kernel-dev-b9ffd80ed659c559152c042e74741f4f60cac691.tar.gz |
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.c | 1 |
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 cadb04d..5973e20 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); |