From dc1b9882737671b90c68e2dd95c94da7e9d6d2f3 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Wed, 8 Jan 2025 12:41:29 +0100 Subject: [PATCH] panvk: Fix panvk_priv_mem_bo() on 32-bit platforms Masking with an ~7ull promotes the value to 64-bit, leading to a size mismatch when we cast it to a pointer. Make sure we're using an uintptr_t type for the mask. Signed-off-by: Boris Brezillon Tested-by: Mikhail Gavrilov Reviewed-by: Erik Faye-Lund Part-of: --- src/panfrost/vulkan/panvk_mempool.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/panfrost/vulkan/panvk_mempool.h b/src/panfrost/vulkan/panvk_mempool.h index a24e510c100..826efb861d5 100644 --- a/src/panfrost/vulkan/panvk_mempool.h +++ b/src/panfrost/vulkan/panvk_mempool.h @@ -128,16 +128,18 @@ struct panvk_priv_mem { unsigned offset; }; +#define PANVK_PRIV_MEM_FLAGS_MASK ((uintptr_t)7) + static struct panvk_priv_bo * panvk_priv_mem_bo(struct panvk_priv_mem mem) { - return (struct panvk_priv_bo *)(mem.bo & ~7ull); + return (struct panvk_priv_bo *)(mem.bo & ~PANVK_PRIV_MEM_FLAGS_MASK); } static uint32_t panvk_priv_mem_flags(struct panvk_priv_mem mem) { - return mem.bo & 7ull; + return mem.bo & PANVK_PRIV_MEM_FLAGS_MASK; } static inline uint64_t