[PATCH] arm64: avoid overflow in VA_START and PAGE_OFFSET

Nick Desaulniers ndesaulniers at google.com
Thu Aug 3 10:53:12 PDT 2017


> Would
>
> #define VA_START (UL(0xffffffffffffffff) - (1 << VA_BITS) + 1)
>
> also work?

I think you'd have to wrap the 1 in a UL(), ex:

#define VA_START (UL(0xffffffffffffffff) - (UL(1) << VA_BITS) + 1)

Otherwise IIUC a integral literal (`1`) is treated as an int, which on
arm64 is LP64 making it 32b, where most configs set VA_BITS
to larger than 32b.  Shifting by more than the width is undefined
behavior. And without it, I get compile errors.

I'll send v2 with your suggestion, thanks.
-- 
Thanks,
~Nick Desaulniers



More information about the linux-arm-kernel mailing list