diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-24 00:12:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-24 00:12:35 +0000 |
commit | 482368b1a8e45430672c58c9a42e7d2004367126 (patch) | |
tree | ce2a1a567d4d62dee7c2e71a46a99cf72cf1d606 /mm/mremap.c | |
parent | e4d0251c6f56ab2e191afb70f80f382793e23f74 (diff) |
Merge with 2.3.47. Guys, this is buggy as shit. You've been warned.
Diffstat (limited to 'mm/mremap.c')
-rw-r--r-- | mm/mremap.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index 45bcf5264..5721fc5d5 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -165,19 +165,14 @@ static inline unsigned long move_vma(struct vm_area_struct * vma, * * MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise * This option implies MREMAP_MAYMOVE. - * - * "__new_addr" toying in order to not change the saved stack layout - * for old x86 binaries that don't want %edi to change.. */ -asmlinkage unsigned long sys_mremap(unsigned long addr, +unsigned long do_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, - unsigned long flags, unsigned long __new_addr) + unsigned long flags, unsigned long new_addr) { - unsigned long new_addr = __new_addr; struct vm_area_struct *vma; unsigned long ret = -EINVAL; - down(¤t->mm->mmap_sem); if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) goto out; @@ -280,13 +275,24 @@ asmlinkage unsigned long sys_mremap(unsigned long addr, ret = -ENOMEM; if (flags & MREMAP_MAYMOVE) { if (!(flags & MREMAP_FIXED)) { - new_addr = get_unmapped_area(addr, new_len); + new_addr = get_unmapped_area(0, new_len); if (!new_addr) goto out; } ret = move_vma(vma, addr, old_len, new_len, new_addr); } out: + return ret; +} + +asmlinkage unsigned long sys_mremap(unsigned long addr, + unsigned long old_len, unsigned long new_len, + unsigned long flags, unsigned long new_addr) +{ + unsigned long ret; + + down(¤t->mm->mmap_sem); + ret = do_mremap(addr, old_len, new_len, flags, new_addr); up(¤t->mm->mmap_sem); return ret; } |