]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/query: Align flavour of engine data lookup
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 22 Nov 2019 10:41:15 +0000 (10:41 +0000)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 25 Nov 2019 13:08:24 +0000 (15:08 +0200)
Commit 58a70cd21027 ("drm/i915/gt: Move the [class][inst] lookup for
engines onto the GT") changed the engine query to iterate over uabi
engines but left the buffer size calculation look at the physical engine
count. Difference has no practical consequence but it is nicer to align
both queries.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: 58a70cd21027 ("drm/i915/gt: Move the [class][inst] lookup for engines onto the GT")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20191122104115.29610-1-tvrtko.ursulin@linux.intel.com
(cherry picked from commit 9acc99d8f278e3da398e927774431bd3e947ab2e)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_query.c

index c27cfef9281ca9cddb7a9c07137f021a6c8c70c5..ef25ce6e395e272efca832719bce5bf9b28cadef 100644 (file)
@@ -103,15 +103,18 @@ query_engine_info(struct drm_i915_private *i915,
        struct drm_i915_engine_info __user *info_ptr;
        struct drm_i915_query_engine_info query;
        struct drm_i915_engine_info info = { };
+       unsigned int num_uabi_engines = 0;
        struct intel_engine_cs *engine;
        int len, ret;
 
        if (query_item->flags)
                return -EINVAL;
 
+       for_each_uabi_engine(engine, i915)
+               num_uabi_engines++;
+
        len = sizeof(struct drm_i915_query_engine_info) +
-             RUNTIME_INFO(i915)->num_engines *
-             sizeof(struct drm_i915_engine_info);
+             num_uabi_engines * sizeof(struct drm_i915_engine_info);
 
        ret = copy_query_item(&query, sizeof(query), len, query_item);
        if (ret != 0)