]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe: Allocate PF queue size on pow2 boundary
authorMatthew Brost <matthew.brost@intel.com>
Wed, 2 Jul 2025 21:35:11 +0000 (14:35 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 8 Jul 2025 03:57:17 +0000 (20:57 -0700)
CIRC_SPACE does not work unless the size argument is a power of 2,
allocate PF queue size on power of 2 boundary.

Cc: stable@vger.kernel.org
Fixes: 3338e4f90c14 ("drm/xe: Use topology to determine page fault queue size")
Fixes: 29582e0ea75c ("drm/xe: Add page queue multiplier")
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Francois Dugast <francois.dugast@intel.com>
Link: https://lore.kernel.org/r/20250702213511.3226167-1-matthew.brost@intel.com
(cherry picked from commit 491b9783126303755717c0cbde0b08ee59b6abab)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_gt_pagefault.c

index 10622ca471a283d655b9877d02c39e8a79fbd6b3..6717a636b1d9c6a935892968abcd4224a201f99b 100644 (file)
@@ -444,6 +444,7 @@ static int xe_alloc_pf_queue(struct xe_gt *gt, struct pf_queue *pf_queue)
 #define PF_MULTIPLIER  8
        pf_queue->num_dw =
                (num_eus + XE_NUM_HW_ENGINES) * PF_MSG_LEN_DW * PF_MULTIPLIER;
+       pf_queue->num_dw = roundup_pow_of_two(pf_queue->num_dw);
 #undef PF_MULTIPLIER
 
        pf_queue->gt = gt;