[igt-dev] [PATCH i-g-t] lib/drmtest.h: make ALIGN work with uint64_t values
Kamil Konieczny
kamil.konieczny at linux.intel.com
Tue Oct 17 15:43:09 UTC 2023
Hi Marcin,
On 2023-10-17 at 12:54:28 +0000, Marcin Bernatowicz wrote:
> Let alignment be the same type as aligned value.
> Based on kernel code.
>
> This should fix code like:
>
> uint32_t a = 4096;
> uint64_t v = 32768ULL * 32768 * 4;
>
> v = ALIGN(v, a);
>
> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> lib/drmtest.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/drmtest.h b/lib/drmtest.h
> index 97ab6e759..524d81b7a 100644
> --- a/lib/drmtest.h
> +++ b/lib/drmtest.h
> @@ -87,7 +87,8 @@ void __set_forced_driver(const char *name);
> *
> * Macro to align a value @v to a specified unit @a.
> */
> -#define ALIGN(v, a) (((v) + (a)-1) & ~((a)-1))
> +#define ALIGN(v, a) ALIGN_MASK(v, (typeof(v))(a) - 1)
> +#define ALIGN_MASK(v, mask) (((v) + (mask)) & ~(mask))
>
> /**
> * ALIGN_DOWN:
> --
> 2.42.0
>
More information about the igt-dev
mailing list