diff options
| author | Matthew Auld <matthew.auld@intel.com> | 2025-10-22 17:38:33 +0100 |
|---|---|---|
| committer | Matthew Auld <matthew.auld@intel.com> | 2025-10-23 10:48:37 +0100 |
| commit | 1413329456aaf5d209ab9c73ae710fb88785ef78 (patch) | |
| tree | 84c44f64226bf2586fbc82a6d6a48007c606c74b | |
| parent | fb188d8b00fc221fcc744109dfa29b9945c91913 (diff) | |
drm/xe/migrate: fix batch buffer sizing
In xe_migrate_vram() the copy can straddle page boundaries, so the len
might look like a single page, but actually accounting for the offset
within the page we will need to emit more than one PTE. Otherwise in
some cases the batch buffer will be undersized leading to warnings
later. We already have npages so use that instead.
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20251022163836.191405-5-matthew.auld@intel.com
| -rw-r--r-- | drivers/gpu/drm/xe/xe_migrate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c index ce5543fa7a52..fa87e0eddd09 100644 --- a/drivers/gpu/drm/xe/xe_migrate.c +++ b/drivers/gpu/drm/xe/xe_migrate.c @@ -1894,7 +1894,7 @@ static struct dma_fence *xe_migrate_vram(struct xe_migrate *m, xe_assert(xe, npages * PAGE_SIZE <= MAX_PREEMPTDISABLE_TRANSFER); - batch_size += pte_update_cmd_size(len); + batch_size += pte_update_cmd_size(npages << PAGE_SHIFT); batch_size += EMIT_COPY_DW; bb = xe_bb_new(gt, batch_size, use_usm_batch); |
