Re: [PATCHv5 1/5] x86/mm: introduce arch_rnd() to compute 32/64 mmap rnd
From: kbuild test robot
Date: Tue Feb 14 2017 - 17:23:37 EST
Hi Dmitry,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.10-rc8 next-20170214]
[cannot apply to tip/x86/core]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Dmitry-Safonov/Fix-compatible-mmap-return-pointer-over-4Gb/20170215-025132
config: x86_64-randconfig-x014-201707 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
arch/x86/mm/mmap.c: In function 'arch_mmap_rnd':
>> arch/x86/mm/mmap.c:58:27: error: 'mmap_rnd_compat_bits' undeclared (first use in this function)
# define mmap32_rnd_bits mmap_rnd_compat_bits
^
>> arch/x86/mm/mmap.c:83:35: note: in expansion of macro 'mmap32_rnd_bits'
return arch_rnd(mmap_is_ia32() ? mmap32_rnd_bits : mmap64_rnd_bits);
^~~~~~~~~~~~~~~
arch/x86/mm/mmap.c:58:27: note: each undeclared identifier is reported only once for each function it appears in
# define mmap32_rnd_bits mmap_rnd_compat_bits
^
>> arch/x86/mm/mmap.c:83:35: note: in expansion of macro 'mmap32_rnd_bits'
return arch_rnd(mmap_is_ia32() ? mmap32_rnd_bits : mmap64_rnd_bits);
^~~~~~~~~~~~~~~
>> arch/x86/mm/mmap.c:84:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
vim +/mmap_rnd_compat_bits +58 arch/x86/mm/mmap.c
52 * Leave an at least ~128 MB hole with possible stack randomization.
53 */
54 #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
55 #define MAX_GAP (TASK_SIZE/6*5)
56
57 #ifdef CONFIG_64BIT
> 58 # define mmap32_rnd_bits mmap_rnd_compat_bits
59 # define mmap64_rnd_bits mmap_rnd_bits
60 #else
61 # define mmap32_rnd_bits mmap_rnd_bits
62 # define mmap64_rnd_bits mmap_rnd_bits
63 #endif
64
65 static int mmap_is_legacy(void)
66 {
67 if (current->personality & ADDR_COMPAT_LAYOUT)
68 return 1;
69
70 if (rlimit(RLIMIT_STACK) == RLIM_INFINITY)
71 return 1;
72
73 return sysctl_legacy_va_layout;
74 }
75
76 static unsigned long arch_rnd(unsigned int rndbits)
77 {
78 return (get_random_long() & ((1UL << rndbits) - 1)) << PAGE_SHIFT;
79 }
80
81 unsigned long arch_mmap_rnd(void)
82 {
> 83 return arch_rnd(mmap_is_ia32() ? mmap32_rnd_bits : mmap64_rnd_bits);
> 84 }
85
86 static unsigned long mmap_base(unsigned long rnd)
87 {
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip