From 7040b409b8bf6b95c37abc5de23c00b7fa3c8acb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 30 Jan 2008 13:30:26 +0100 Subject: [PATCH] --- yaml --- r: 79770 b: refs/heads/master c: 4ec08da02f0fda16fbc8dfa040568facaa576790 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/ia32/Makefile | 3 +- trunk/arch/x86/ia32/mmap32.c | 79 ----------------------------------- trunk/arch/x86/mm/Makefile_64 | 2 +- trunk/arch/x86/mm/mmap_32.c | 4 ++ 5 files changed, 7 insertions(+), 83 deletions(-) delete mode 100644 trunk/arch/x86/ia32/mmap32.c diff --git a/[refs] b/[refs] index 37b4904b144a..e7e133958911 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f8eeae682166e3b965dcdaf499932f4b63cc5b5d +refs/heads/master: 4ec08da02f0fda16fbc8dfa040568facaa576790 diff --git a/trunk/arch/x86/ia32/Makefile b/trunk/arch/x86/ia32/Makefile index e2edda255a84..a3c997e9f39a 100644 --- a/trunk/arch/x86/ia32/Makefile +++ b/trunk/arch/x86/ia32/Makefile @@ -3,8 +3,7 @@ # obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o tls32.o \ - ia32_binfmt.o fpu32.o ptrace32.o syscall32.o syscall32_syscall.o \ - mmap32.o + ia32_binfmt.o fpu32.o ptrace32.o syscall32.o syscall32_syscall.o sysv-$(CONFIG_SYSVIPC) := ipc32.o obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) diff --git a/trunk/arch/x86/ia32/mmap32.c b/trunk/arch/x86/ia32/mmap32.c deleted file mode 100644 index 7649370a3144..000000000000 --- a/trunk/arch/x86/ia32/mmap32.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * linux/arch/x86_64/ia32/mm/mmap.c - * - * flexible mmap layout support - * - * Based on the i386 version which was - * - * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * - * Started by Ingo Molnar - */ - -#include -#include -#include -#include - -/* - * Top of mmap area (just below the process stack). - * - * Leave an at least ~128 MB hole. - */ -#define MIN_GAP (128 * 1024 * 1024) -#define MAX_GAP (TASK_SIZE / 6 * 5) - -static inline unsigned long mmap_base(struct mm_struct *mm) -{ - unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; - unsigned long random_factor = 0; - - if (current->flags & PF_RANDOMIZE) - random_factor = get_random_int() % (1024 * 1024); - - if (gap < MIN_GAP) - gap = MIN_GAP; - else if (gap > MAX_GAP) - gap = MAX_GAP; - - return PAGE_ALIGN(TASK_SIZE - gap - random_factor); -} - -/* - * This function, called very early during the creation of a new - * process VM image, sets up which VM layout function to use: - */ -void ia32_pick_mmap_layout(struct mm_struct *mm) -{ - /* - * Fall back to the standard layout if the personality - * bit is set, or if the expected stack growth is unlimited: - */ - if (sysctl_legacy_va_layout || - (current->personality & ADDR_COMPAT_LAYOUT) || - current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY) { - mm->mmap_base = TASK_UNMAPPED_BASE; - mm->get_unmapped_area = arch_get_unmapped_area; - mm->unmap_area = arch_unmap_area; - } else { - mm->mmap_base = mmap_base(mm); - mm->get_unmapped_area = arch_get_unmapped_area_topdown; - mm->unmap_area = arch_unmap_area_topdown; - } -} diff --git a/trunk/arch/x86/mm/Makefile_64 b/trunk/arch/x86/mm/Makefile_64 index 6bcb47945b87..d18baed54fc6 100644 --- a/trunk/arch/x86/mm/Makefile_64 +++ b/trunk/arch/x86/mm/Makefile_64 @@ -7,4 +7,4 @@ obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o obj-$(CONFIG_NUMA) += numa_64.o obj-$(CONFIG_K8_NUMA) += k8topology_64.o obj-$(CONFIG_ACPI_NUMA) += srat_64.o - +obj-$(CONFIG_IA32_EMULATION) += mmap_32.o diff --git a/trunk/arch/x86/mm/mmap_32.c b/trunk/arch/x86/mm/mmap_32.c index d7dd0962a6d7..d490662e4af4 100644 --- a/trunk/arch/x86/mm/mmap_32.c +++ b/trunk/arch/x86/mm/mmap_32.c @@ -57,7 +57,11 @@ static inline unsigned long mmap_base(struct mm_struct *mm) * This function, called very early during the creation of a new * process VM image, sets up which VM layout function to use: */ +#ifdef CONFIG_X86_32 void arch_pick_mmap_layout(struct mm_struct *mm) +#else +void ia32_pick_mmap_layout(struct mm_struct *mm) +#endif { /* * Fall back to the standard layout if the personality