Patch "drm/xe/gt: Fix assert in L3 bank mask generation" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/xe/gt: Fix assert in L3 bank mask generation

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-xe-gt-fix-assert-in-l3-bank-mask-generation.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 75dea505e45fee6f1e6035b2248963ba985dc58d
Author: Francois Dugast <francois.dugast@xxxxxxxxx>
Date:   Thu May 2 14:43:10 2024 +0200

    drm/xe/gt: Fix assert in L3 bank mask generation
    
    [ Upstream commit 8ad0e1810bf23f22cedb8a2664548b15646570c7 ]
    
    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@xxxxxxxxx>
    Cc: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
    Signed-off-by: Francois Dugast <francois.dugast@xxxxxxxxx>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240502124311.159695-1-francois.dugast@xxxxxxxxx
    Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/xe/xe_gt_topology.c b/drivers/gpu/drm/xe/xe_gt_topology.c
index 3733e7a6860d..d224ed1b5c0f 100644
--- a/drivers/gpu/drm/xe/xe_gt_topology.c
+++ b/drivers/gpu/drm/xe/xe_gt_topology.c
@@ -108,7 +108,9 @@ gen_l3_mask_from_pattern(struct xe_device *xe, xe_l3_bank_mask_t dst,
 {
 	unsigned long bit;
 
-	xe_assert(xe, fls(mask) <= patternbits);
+	xe_assert(xe, find_last_bit(pattern, XE_MAX_L3_BANK_MASK_BITS) < patternbits ||
+		  bitmap_empty(pattern, XE_MAX_L3_BANK_MASK_BITS));
+	xe_assert(xe, !mask || patternbits * (__fls(mask) + 1) <= XE_MAX_L3_BANK_MASK_BITS);
 	for_each_set_bit(bit, &mask, 32) {
 		xe_l3_bank_mask_t shifted_pattern = {};
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux