diff -u linux-2.6.24/debian/binary-custom.d/xen/patchset/001-xen-base.patch linux-2.6.24/debian/binary-custom.d/xen/patchset/001-xen-base.patch --- linux-2.6.24/debian/binary-custom.d/xen/patchset/001-xen-base.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/001-xen-base.patch @@ -26308,134 +26308,6 @@ } 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 - #include - #include --#include - - #include - #include -@@ -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_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 @@ + direct_remap_pfn_range(vma,vaddr,pfn,size,prot,DOMID_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) diff -u linux-2.6.24/debian/changelog linux-2.6.24/debian/changelog --- linux-2.6.24/debian/changelog +++ linux-2.6.24/debian/changelog @@ -1,3 +1,12 @@ +linux (2.6.24-23.49) hardy-cat; urgency=low + + * debian/binary-custom.d/xen/patchset/001-xen-base.patch: undo + unnecessary changes to arch/x86/kernel/sys_x86_64.c and define + HAVE_ARCH_UNMAPPED_AREA_TOPDOWN in Xen's pgtable_64.h. (Closes: LP: + #237724) + + -- James Troup Wed, 04 Feb 2009 23:08:15 +0000 + linux (2.6.24-23.48) hardy-security; urgency=low [Upstream Kernel Changes]