drm/xe/queue: fix engine_class bounds check
authorMatthew Auld <matthew.auld@intel.com>
Mon, 18 Mar 2024 18:05:33 +0000 (18:05 +0000)
committerMatthew Auld <matthew.auld@intel.com>
Tue, 19 Mar 2024 08:47:47 +0000 (08:47 +0000)
The engine_class is the index into the user_to_xe_engine_class,
therefore it needs to be less than.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240318180532.57522-4-matthew.auld@intel.com
drivers/gpu/drm/xe/xe_exec_queue.c

index 6a83bc57826afb48f3c58e8bc798e4eda011554f..2016c1af9633d7195ca51c5294e05e76654da5cb 100644 (file)
@@ -440,7 +440,7 @@ find_hw_engine(struct xe_device *xe,
 {
        u32 idx;
 
-       if (eci.engine_class > ARRAY_SIZE(user_to_xe_engine_class))
+       if (eci.engine_class >= ARRAY_SIZE(user_to_xe_engine_class))
                return NULL;
 
        if (eci.gt_id >= xe->info.gt_count)