On Tue, Oct 08, 2019 at 12:10:26AM +0900, Masami Hiramatsu wrote: > Currently proc-self-map-files-002.c sets va_max (max test address > of user virtual address) to 4GB, but it is too big for 32bit > arch and 1UL << 32 is overflow on 32bit long. > > Make va_max 3GB on 32bit arch like i386 and arm. IIRC i386 had 1G/3G split, so 3GB would be too much still. > --- a/tools/testing/selftests/proc/proc-self-map-files-002.c > +++ b/tools/testing/selftests/proc/proc-self-map-files-002.c > +#if __BITS_PER_LONG == 32 > +# define VA_MAX (3UL << 30) > +#elif __BITS_PER_LONG == 64 > +# define VA_MAX (1UL << 32) > +#else > +# define VA_MAX 0 > +#endif > + > int main(void) > { > const int PAGE_SIZE = sysconf(_SC_PAGESIZE); > - const unsigned long va_max = 1UL << 32; > + const unsigned long va_max = VA_MAX; This limit doesn't need to be precise, 1GB is "big enough".