]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/xe/configfs: Fix engine class parsing
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 24 Sep 2025 15:27:10 +0000 (08:27 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 3 Oct 2025 04:57:51 +0000 (21:57 -0700)
If mask is NULL, only the engine class should be accepted, so the
pattern string should be completely parsed. This should fix passing e.g.
rcs0 to ctx_restore_post_bb when it's only expecting the engine class.

Reported-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Closes: https://lore.kernel.org/r/20250922155544.67712-1-jonathan.cavitt@intel.com
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/aNJKnrCQmL9xS9Gv@stanley.mountain
Fixes: e2a9854d806e ("drm/xe/configfs: Allow to select by class only")
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Link: https://lore.kernel.org/r/20250924152709.659483-3-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit dd797967160b79cc0ca2d2eb05fc55436b66dce0)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_configfs.c

index 8a9b950e7a6d1c6d7e51c4084a562cffee6702fb..beade13efbae7e8ad7a4d752d1c0b624f413d3eb 100644 (file)
@@ -324,8 +324,8 @@ static const struct engine_info *lookup_engine_info(const char *pattern, u64 *ma
                        continue;
 
                pattern += strlen(engine_info[i].cls);
-               if (!mask && !*pattern)
-                       return &engine_info[i];
+               if (!mask)
+                       return *pattern ? NULL : &engine_info[i];
 
                if (!strcmp(pattern, "*")) {
                        *mask = engine_info[i].mask;