]> www.infradead.org Git - users/dwmw2/linux.git/commit
drm/xe/gt: Fix assert in L3 bank mask generation
authorFrancois Dugast <francois.dugast@intel.com>
Thu, 2 May 2024 12:43:10 +0000 (14:43 +0200)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 2 May 2024 17:46:02 +0000 (10:46 -0700)
commit8ad0e1810bf23f22cedb8a2664548b15646570c7
tree868903291505117f62b625a11cf8c8cb6a15a02c
parentae22b2f1c8ccd9a3e5f19e3ebb4ef6ec1e8655e0
drm/xe/gt: Fix assert in L3 bank mask generation

What needs to be asserted is that the pattern fits in the number
of bits provided by the user in patternbits, otherwise it would
be truncated when replicated according to the mask, which is
likely not the intended use of this function.
The pattern argument is a bitmap so use find_last_bit() instead
of fls(). The bit position starts at index 0 so remove "or equal"
from the comparison. XE_MAX_L3_BANK_MASK_BITS would be the
returned value if the pattern is 0, which can be the case on some
platforms.

v2: Check the result does not overflow the array (Lucas De Marchi)

v3: Use __fls() for long and handle mask == 0  (Lucas De Marchi)

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240502124311.159695-1-francois.dugast@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_gt_topology.c