drm/i915: Fix command parser table validator
authorHanno Böck <hanno@hboeck.de>
Wed, 29 Jul 2015 08:31:04 +0000 (10:31 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 29 Jul 2015 08:31:04 +0000 (10:31 +0200)
As we may like to use a bisection search on the tables in future, we
need them to be ordered. For convenience we expect the compiled tables
to be order and check on initialisation. However, the validator used the
wrong iterators failed to spot the misordered MI tables and instead
walked off into the unknown (as spotted by kasan).

Signed-off-by: Hanno Boeck <hanno@hboeck.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[danvet: Again hand-assemble patch ...]
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
drivers/gpu/drm/i915/i915_cmd_parser.c

index dc5d9b22cebcd7f39b5299998bc0eda73eeadc79..237ff6884a2227bc9b7520ed4bcaabe75d924f74 100644 (file)
@@ -564,7 +564,7 @@ static bool validate_cmds_sorted(struct intel_engine_cs *ring,
 
                for (j = 0; j < table->count; j++) {
                        const struct drm_i915_cmd_descriptor *desc =
-                               &table->table[i];
+                               &table->table[j];
                        u32 curr = desc->cmd.value & desc->cmd.mask;
 
                        if (curr < previous) {