Engine related definitions are located in different files
and it is easy to break their cross dependency.

Additionally use GEM_WARN_ON to catch invalid engine index.

v2: compare against array size

Signed-off-by: Michal Wajdeczko <michal.wajdec...@intel.com>
Cc: Jani Nikula <jani.nik...@intel.com>
Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index a238304..c1f58b5 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -84,11 +84,16 @@ static const struct engine_info {
 
 static int
 intel_engine_setup(struct drm_i915_private *dev_priv,
-                  enum intel_engine_id id)
+                  unsigned int id)
 {
        const struct engine_info *info = &intel_engines[id];
        struct intel_engine_cs *engine;
 
+       BUILD_BUG_ON(ARRAY_SIZE(intel_engines) !=
+                    ARRAY_SIZE(dev_priv->engine));
+       if (GEM_WARN_ON(id >= ARRAY_SIZE(intel_engines)))
+               return -EINVAL;
+
        GEM_BUG_ON(dev_priv->engine[id]);
        engine = kzalloc(sizeof(*engine), GFP_KERNEL);
        if (!engine)
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to