From 48904cd1a99b7643c2fae32fb54b07cad88a5767 Mon Sep 17 00:00:00 2001 From: proski Date: Thu, 23 Jul 2009 16:41:29 +0000 Subject: [PATCH] 2009-07-23 Pavel Roskin * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr to avoid loss of upper bits if align is unsigned and shorter than addr. --- ChangeLog | 6 ++++++ include/grub/misc.h | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a0780abed..3ceeb08f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-07-23 Pavel Roskin + + * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr + to avoid loss of upper bits if align is unsigned and shorter + than addr. + 2009-07-21 Vladimir Serbinenko UUID support for UFS diff --git a/include/grub/misc.h b/include/grub/misc.h index e229062ac..769ec5cd8 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -25,7 +25,8 @@ #include #include -#define ALIGN_UP(addr, align) (((grub_uint64_t)addr + align - 1) & ~(align - 1)) +#define ALIGN_UP(addr, align) \ + ((addr + (typeof (addr)) align - 1) & ~((typeof (addr)) align - 1)) #define ARRAY_SIZE(array) (sizeof (array) / sizeof (array[0])) #define grub_dprintf(condition, fmt, args...) grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args)