Browse Source

drm/i915: Don't overrun the intel_wa_regs array

When entering intel_ring_emit_wa() with num_wa_regs equal to
I915_MAX_WA_REGS, we end up indexing the intel_wa_regs array beyond its
allocation.

Fix the check then.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Damien Lespiau 11 years ago
parent
commit
55820e1e84
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/gpu/drm/i915/intel_ringbuffer.c

+ 1 - 1
drivers/gpu/drm/i915/intel_ringbuffer.c

@@ -663,7 +663,7 @@ static inline void intel_ring_emit_wa(struct intel_engine_cs *ring,
 	struct drm_device *dev = ring->dev;
 	struct drm_device *dev = ring->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
 
-	if (dev_priv->num_wa_regs > I915_MAX_WA_REGS)
+	if (dev_priv->num_wa_regs >= I915_MAX_WA_REGS)
 		return;
 		return;
 
 
 	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
 	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));