From 90e14d453ae8f08701e10c61264b53a233acfa3c Mon Sep 17 00:00:00 2001 From: Jammy Zhou Date: Mon, 13 Jul 2015 16:49:42 +0800 Subject: [PATCH] drm: fix the ALIGN macro to avoid value clamp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the value is 64bit, but the alignment is 32bit type, the high 32bit will be clamped with previous definition Signed-off-by: Jammy Zhou Reviewed-by: Christian König --- util_math.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util_math.h b/util_math.h index b8de0f86..3bc5f644 100644 --- a/util_math.h +++ b/util_math.h @@ -27,6 +27,7 @@ #define MIN2( A, B ) ( (A)<(B) ? (A) : (B) ) #define MAX2( A, B ) ( (A)>(B) ? (A) : (B) ) -#define ALIGN( value, alignment ) ( ((value) + (alignment) - 1) & ~((alignment) - 1) ) +#define __align_mask(value, mask) (((value) + (mask)) & ~(mask)) +#define ALIGN(value, alignment) __align_mask(value, (typeof(value))((alignment) - 1)) #endif /*_UTIL_MATH_H_*/