Matthew noticed that hugetlb doesn't participate in ASLR on x86-64. The
reason is genereic hugetlb_get_unmapped_area() which is used on x86-64.
It doesn't support randomization and use bottom-up unmapped area lookup,
instead of usual top-down on x86-64.
x86 has arch-specific hugetlb_get_unmapped_area(), but it's used only on
x86-32.
Let's use arch-specific hugetlb_get_unmapped_area() on x86-64 too. It
fixes the issue and make hugetlb use top-down unmapped area lookup.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Matthew Wilcox <willy@linux.intel.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>