FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 02-12-2009, 02:03 PM
James Troup
 
Default UBUNTU: XEN: Enable architecture specific get_unmapped_area_topdown

Bug: #237724

Revert removal of architecture specific definition of get_unmapped_area_topdown
and added HAVE_ARCH_UNMAPPED_AREA_TOPDOWN to pgtable_64.h

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
.../xen/patchset/001-xen-base.patch | 131 +-------------------
1 files changed, 2 insertions(+), 129 deletions(-)

diff --git a/debian/binary-custom.d/xen/patchset/001-xen-base.patch b/debian/binary-custom.d/xen/patchset/001-xen-base.patch
index f8d5548..ded6f20 100644
--- a/debian/binary-custom.d/xen/patchset/001-xen-base.patch
+++ b/debian/binary-custom.d/xen/patchset/001-xen-base.patch
@@ -26308,134 +26308,6 @@ diff -Naur ubuntu-hardy/arch/x86/kernel/sysenter_32.c ubuntu-hardy-xen/arch/x86/
}

static struct vm_area_struct gate_vma;
-diff -Naur ubuntu-hardy/arch/x86/kernel/sys_x86_64.c ubuntu-hardy-xen/arch/x86/kernel/sys_x86_64.c
---- ubuntu-hardy/arch/x86/kernel/sys_x86_64.c 2008-04-09 12:57:00.000000000 +0100
-+++ ubuntu-hardy-xen/arch/x86/kernel/sys_x86_64.c 2008-04-09 13:17:22.000000000 +0100
-@@ -12,7 +12,6 @@
- #include <linux/file.h>
- #include <linux/utsname.h>
- #include <linux/personality.h>
--#include <linux/random.h>
-
- #include <asm/uaccess.h>
- #include <asm/ia32.h>
-@@ -66,7 +65,6 @@
- unsigned long *end)
- {
- if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) {
-- unsigned long new_begin;
- /* This is usually used needed to map code in small
- model, so it needs to be in the first 31bit. Limit
- it to that. This means we need to move the
-@@ -76,11 +74,6 @@
- of playground for now. -AK */
- *begin = 0x40000000;
- *end = 0x80000000;
-- if (current->flags & PF_RANDOMIZE) {
-- new_begin = randomize_range(*begin, *begin + 0x02000000, 0);
-- if (new_begin)
-- *begin = new_begin;
-- }
- } else {
- *begin = TASK_UNMAPPED_BASE;
- *end = TASK_SIZE;
-@@ -151,96 +144,6 @@
- }
-
-
--unsigned long
--arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
-- const unsigned long len, const unsigned long pgoff,
-- const unsigned long flags)
--{
-- struct vm_area_struct *vma;
-- struct mm_struct *mm = current->mm;
-- unsigned long addr = addr0;
--
-- /* requested length too big for entire address space */
-- if (len > TASK_SIZE)
-- return -ENOMEM;
--
-- if (flags & MAP_FIXED)
-- return addr;
--
-- /* for MAP_32BIT mappings we force the legact mmap base */
-- if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT))
-- goto bottomup;
--
-- /* requesting a specific address */
-- if (addr) {
-- addr = PAGE_ALIGN(addr);
-- vma = find_vma(mm, addr);
-- if (TASK_SIZE - len >= addr &&
-- (!vma || addr + len <= vma->vm_start))
-- return addr;
-- }
--
-- /* check if free_area_cache is useful for us */
-- if (len <= mm->cached_hole_size) {
-- mm->cached_hole_size = 0;
-- mm->free_area_cache = mm->mmap_base;
-- }
--
-- /* either no address requested or can't fit in requested address hole */
-- addr = mm->free_area_cache;
--
-- /* make sure it can fit in the remaining address space */
-- if (addr > len) {
-- vma = find_vma(mm, addr-len);
-- if (!vma || addr <= vma->vm_start)
-- /* remember the address as a hint for next time */
-- return (mm->free_area_cache = addr-len);
-- }
--
-- if (mm->mmap_base < len)
-- goto bottomup;
--
-- addr = mm->mmap_base-len;
--
-- do {
-- /*
-- * Lookup failure means no vma is above this address,
-- * else if new region fits below vma->vm_start,
-- * return with success:
-- */
-- vma = find_vma(mm, addr);
-- if (!vma || addr+len <= vma->vm_start)
-- /* remember the address as a hint for next time */
-- return (mm->free_area_cache = addr);
--
-- /* remember the largest hole we saw so far */
-- if (addr + mm->cached_hole_size < vma->vm_start)
-- mm->cached_hole_size = vma->vm_start - addr;
--
-- /* try just below the current vma->vm_start */
-- addr = vma->vm_start-len;
-- } while (len < vma->vm_start);
--
--bottomup:
-- /*
-- * A failed mmap() very likely causes application failure,
-- * so fall back to the bottom-up function here. This scenario
-- * can happen with large stack limits and large mmap()
-- * allocations.
-- */
-- mm->cached_hole_size = ~0UL;
-- mm->free_area_cache = TASK_UNMAPPED_BASE;
-- addr = arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
-- /*
-- * Restore the topdown base:
-- */
-- mm->free_area_cache = mm->mmap_base;
-- mm->cached_hole_size = ~0UL;
--
-- return addr;
--}
--
--
- asmlinkage long sys_uname(struct new_utsname __user * name)
- {
- int err;
diff -Naur ubuntu-hardy/arch/x86/kernel/time_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/time_32-xen.c
--- ubuntu-hardy/arch/x86/kernel/time_32-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ ubuntu-hardy-xen/arch/x86/kernel/time_32-xen.c 2008-04-09 13:17:22.000000000 +0100
@@ -79095,7 +78967,7 @@ diff -Naur ubuntu-hardy/include/asm-x86/mach-xen/asm/pgtable-3level.h ubuntu-har
diff -Naur ubuntu-hardy/include/asm-x86/mach-xen/asm/pgtable_64.h ubuntu-hardy-xen/include/asm-x86/mach-xen/asm/pgtable_64.h
--- ubuntu-hardy/include/asm-x86/mach-xen/asm/pgtable_64.h 1970-01-01 01:00:00.000000000 +0100
+++ ubuntu-hardy-xen/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-04-09 13:17:22.000000000 +0100
-@@ -0,0 +1,563 @@
+@@ -0,0 +1,564 @@
+#ifndef _X86_64_PGTABLE_H
+#define _X86_64_PGTABLE_H
+
@@ -79637,6 +79509,7 @@ diff -Naur ubuntu-hardy/include/asm-x86/mach-xen/asm/pgtable_64.h ubuntu-hardy-x
+ direct_remap_pfn_range(vma,vaddr,pfn,size,prot,DOM ID_IO)
+
+#define HAVE_ARCH_UNMAPPED_AREA
++#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
+
+#define pgtable_cache_init() do { } while (0)
+#define check_pgt_cache() do { } while (0)
--
1.5.4.3


--------------000804090205060703060502
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team

--------------000804090205060703060502--
 

Thread Tools




All times are GMT. The time now is 07:12 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org