Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+1 -1
+1 -1
drivers/gpu/drm/xe/xe_migrate.c
··· 1894 1894 1895 1895 xe_assert(xe, npages * PAGE_SIZE <= MAX_PREEMPTDISABLE_TRANSFER); 1896 1896 1897 - batch_size += pte_update_cmd_size(len); 1897 + batch_size += pte_update_cmd_size(npages << PAGE_SHIFT); 1898 1898 batch_size += EMIT_COPY_DW; 1899 1899 1900 1900 bb = xe_bb_new(gt, batch_size, use_usm_batch);