[PATCH] drm/xe/migrate: Fix alignment check

Matthew Brost matthew.brost at intel.com
Thu Jul 10 22:36:55 UTC 2025


On Thu, Jul 10, 2025 at 02:34:41PM -0700, Lucas De Marchi wrote:
> The check would fail if the address is unaligned, but not when
> accounting the offset. Instead of `buf | offset` it should have
> been `buf + offset`. To make it more readable and also drop the
> uintptr_t, just use the IS_ALIGNED() macro.
> 
> Cc: Matthew Auld <matthew.auld at intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>

Probably a fixes tag even though this data path is not used at the moment?

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_migrate.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> index 4e2bdf70eb70b..18b53a4e267d3 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -1817,8 +1817,8 @@ int xe_migrate_access_memory(struct xe_migrate *m, struct xe_bo *bo,
>  	xe_bo_assert_held(bo);
>  
>  	/* Use bounce buffer for small access and unaligned access */
> -	if (len & XE_CACHELINE_MASK ||
> -	    ((uintptr_t)buf | offset) & XE_CACHELINE_MASK) {
> +        if (!IS_ALIGNED(len, XE_CACHELINE_BYTES) ||
> +            !IS_ALIGNED((unsigned long)buf + offset, XE_CACHELINE_BYTES)) {
>  		int buf_offset = 0;
>  
>  		/*
> 
> 
> 


More information about the Intel-xe mailing list