summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Roper <matthew.d.roper@intel.com>2025-12-03 01:25:52 +0300
committerMatt Roper <matthew.d.roper@intel.com>2025-12-03 18:31:29 +0300
commit688035f83ef0a3b492b9ff9748518d6d45b4f107 (patch)
tree7aa81b8bd1d6762a9b22aeac87ee10efdeabf00f
parent0f94e51b5320eacccc2626ab70b8d7e705332334 (diff)
downloadlinux-688035f83ef0a3b492b9ff9748518d6d45b4f107.tar.xz
drm/xe/sync: Use for_each_tlb_inval() to calculate invalidation fences
xe_sync_in_fence_get() uses the same kind of mismatched fence array allocation vs looping logic that was previously noted and changed by commit 0a4c2ddc711a ("drm/xe/vm: Use for_each_tlb_inval() to calculate invalidation fences"). As with that commit, the mismatch doesn't cause any problem at the moment since for_each_tlb_inval() loops the same number of times as XE_MAX_GT_PER_TILE (2). However we don't want to assume that these will always be the same in the future, so switch to using for_each_tlb_inval() in both places to future-proof the code. Reviewed-by: Matthew Brost <matthew.brost@intel.com> Link: https://patch.msgid.link/20251202222551.1858930-2-matthew.d.roper@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
-rw-r--r--drivers/gpu/drm/xe/xe_sync.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/xe/xe_sync.c b/drivers/gpu/drm/xe/xe_sync.c
index ff74528ca0c6..1fc4fa278b78 100644
--- a/drivers/gpu/drm/xe/xe_sync.c
+++ b/drivers/gpu/drm/xe/xe_sync.c
@@ -311,8 +311,11 @@ xe_sync_in_fence_get(struct xe_sync_entry *sync, int num_sync,
struct xe_tile *tile;
u8 id;
- for_each_tile(tile, vm->xe, id)
- num_fence += (1 + XE_MAX_GT_PER_TILE);
+ for_each_tile(tile, vm->xe, id) {
+ num_fence++;
+ for_each_tlb_inval(i)
+ num_fence++;
+ }
fences = kmalloc_array(num_fence, sizeof(*fences),
GFP_KERNEL);