rpms/kernel/devel linux-2.6.11-execshield.patch,1.4,1.5

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Apr 29 05:12:30 UTC 2005


Author: roland

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv13282

Modified Files:
	linux-2.6.11-execshield.patch 
Log Message:
Fix exec-shield change to x86_64 fault handling, strikes on 32-bit vdso mapping used since 2.6.12rc3 upstream change.  (#156166)

linux-2.6.11-execshield.patch:
 linux-2.6.11/arch/x86_64/mm/fault.c            |    4 
 linux-810/arch/i386/kernel/asm-offsets.c       |    1 
 linux-810/arch/i386/kernel/entry.S             |    8 +
 linux-810/arch/i386/kernel/process.c           |   59 ++++++++++++
 linux-810/arch/i386/kernel/signal.c            |    4 
 linux-810/arch/i386/kernel/smp.c               |    3 
 linux-810/arch/i386/kernel/sysenter.c          |   55 +++++++++++
 linux-810/arch/i386/kernel/traps.c             |   48 +++++++++-
 linux-810/arch/i386/kernel/vsyscall-sysenter.S |    6 -
 linux-810/arch/i386/kernel/vsyscall.lds.S      |    4 
 linux-810/arch/i386/mm/init.c                  |    6 +
 linux-810/arch/i386/mm/mmap.c                  |    6 -
 linux-810/arch/ia64/ia32/binfmt_elf32.c        |    2 
 linux-810/arch/x86_64/ia32/ia32_binfmt.c       |    2 
 linux-810/arch/x86_64/kernel/process.c         |    7 -
 linux-810/arch/x86_64/mm/Makefile              |    2 
 linux-810/arch/x86_64/mm/mmap.c                |   95 +++++++++++++++++++
 linux-810/drivers/char/random.c                |    7 +
 linux-810/fs/binfmt_elf.c                      |  120 ++++++++++++++++++++-----
 linux-810/fs/proc/array.c                      |    8 +
 linux-810/fs/proc/base.c                       |    4 
 linux-810/fs/proc/task_mmu.c                   |   25 ++++-
 linux-810/include/asm-i386/desc.h              |   14 ++
 linux-810/include/asm-i386/elf.h               |   42 +++++---
 linux-810/include/asm-i386/mmu.h               |    6 +
 linux-810/include/asm-i386/pgalloc.h           |    1 
 linux-810/include/asm-i386/processor.h         |    8 +
 linux-810/include/asm-i386/thread_info.h       |    1 
 linux-810/include/asm-ia64/pgalloc.h           |    4 
 linux-810/include/asm-ppc/pgalloc.h            |    5 +
 linux-810/include/asm-ppc64/pgalloc.h          |    5 +
 linux-810/include/asm-s390/pgalloc.h           |    4 
 linux-810/include/asm-sparc/pgalloc.h          |    4 
 linux-810/include/asm-sparc64/pgalloc.h        |    4 
 linux-810/include/asm-x86_64/pgalloc.h         |    7 +
 linux-810/include/asm-x86_64/processor.h       |    8 +
 linux-810/include/linux/mm.h                   |    9 +
 linux-810/include/linux/resource.h             |    5 -
 linux-810/include/linux/sched.h                |    9 +
 linux-810/include/linux/sysctl.h               |    3 
 linux-810/kernel/signal.c                      |   38 +++++++
 linux-810/kernel/sysctl.c                      |   39 ++++++++
 linux-810/mm/fremap.c                          |   10 +-
 linux-810/mm/mmap.c                            |  107 ++++++++++++++++++++--
 linux-810/mm/mprotect.c                        |    5 -
 linux-810/mm/mremap.c                          |    4 
 46 files changed, 728 insertions(+), 90 deletions(-)

Index: linux-2.6.11-execshield.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6.11-execshield.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6.11-execshield.patch	6 Apr 2005 20:44:18 -0000	1.4
+++ linux-2.6.11-execshield.patch	29 Apr 2005 05:12:27 -0000	1.5
@@ -1660,3 +1660,24 @@
  			ret = new_addr;
  			if (new_addr & ~PAGE_MASK)
  				goto out;
+--- linux-2.6.11/arch/x86_64/mm/fault.c
++++ linux-2.6.11/arch/x86_64/mm/fault.c
+@@ -74,7 +74,7 @@ static noinline int is_prefetch(struct p
+ 	instr = (unsigned char *)convert_rip_to_linear(current, regs);
+ 	max_instr = instr + 15;
+ 
+-	if ((regs->cs & 3) != 0 && instr >= (unsigned char *)TASK_SIZE)
++	if ((regs->cs & 3) != 0 && instr >= (unsigned char *)TASK_SIZE_64)
+ 		return 0;
+ 
+ 	while (scan_more && instr < max_instr) { 
+@@ -345,7 +345,7 @@ asmlinkage void do_page_fault(struct pt_
+ 	 * (error_code & 4) == 0, and that the fault was not a
+ 	 * protection error (error_code & 1) == 0.
+ 	 */
+-	if (unlikely(address >= TASK_SIZE)) {
++	if (unlikely(address >= TASK_SIZE_64)) {
+ 		if (!(error_code & 5)) {
+ 			if (vmalloc_fault(address) < 0)
+ 				goto bad_area_nosemaphore;
+




More information about the fedora-cvs-commits mailing list