Commit b1a93306 authored by Zhao Yakui's avatar Zhao Yakui Committed by Daniel Vetter

drm/i915: Update the restrict check to filter out wrong Ring ID passed by user-space

Signed-off-by: default avatarZhao Yakui <yakui.zhao@intel.com>
Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent fd3c269f
...@@ -1037,7 +1037,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, ...@@ -1037,7 +1037,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
if (args->flags & I915_EXEC_IS_PINNED) if (args->flags & I915_EXEC_IS_PINNED)
flags |= I915_DISPATCH_PINNED; flags |= I915_DISPATCH_PINNED;
if ((args->flags & I915_EXEC_RING_MASK) > I915_NUM_RINGS) { if ((args->flags & I915_EXEC_RING_MASK) > LAST_USER_RING) {
DRM_DEBUG("execbuf with unknown ring: %d\n", DRM_DEBUG("execbuf with unknown ring: %d\n",
(int)(args->flags & I915_EXEC_RING_MASK)); (int)(args->flags & I915_EXEC_RING_MASK));
return -EINVAL; return -EINVAL;
......
...@@ -63,6 +63,7 @@ struct intel_ring_buffer { ...@@ -63,6 +63,7 @@ struct intel_ring_buffer {
VECS, VECS,
} id; } id;
#define I915_NUM_RINGS 4 #define I915_NUM_RINGS 4
#define LAST_USER_RING (VECS + 1)
u32 mmio_base; u32 mmio_base;
void __iomem *virtual_start; void __iomem *virtual_start;
struct drm_device *dev; struct drm_device *dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment