rpms/kernel/devel linux-2.6-execshield.patch, 1.29, 1.30 linux-2.6-tux.patch, 1.27, 1.28

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sun Sep 17 06:01:38 UTC 2006


Author: davej

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

Modified Files:
	linux-2.6-execshield.patch linux-2.6-tux.patch 
Log Message:
rediff tux & execshield

linux-2.6-execshield.patch:
 arch/i386/kernel/cpu/common.c  |    7 +
 arch/i386/kernel/process.c     |   59 +++++++++++++
 arch/i386/kernel/smp.c         |    3 
 arch/i386/kernel/sysenter.c    |    3 
 arch/i386/kernel/traps.c       |   93 ++++++++++++++++++++
 arch/i386/mm/init.c            |    6 +
 arch/i386/mm/mmap.c            |    6 -
 arch/ia64/ia32/binfmt_elf32.c  |    2 
 arch/powerpc/kernel/vdso.c     |    3 
 arch/x86_64/ia32/ia32_binfmt.c |    6 -
 arch/x86_64/ia32/syscall32.c   |    4 
 arch/x86_64/kernel/process.c   |    6 -
 arch/x86_64/kernel/setup64.c   |   23 -----
 arch/x86_64/mm/fault.c         |    2 
 arch/x86_64/mm/mmap.c          |   98 +++++++++++++++++----
 drivers/char/random.c          |    7 +
 fs/binfmt_elf.c                |  147 +++++++++++++++++++++++++-------
 fs/proc/array.c                |    8 +
 fs/proc/base.c                 |    8 -
 fs/proc/task_mmu.c             |   29 +++++-
 include/asm-i386/a.out.h       |    2 
 include/asm-i386/desc.h        |   14 +++
 include/asm-i386/elf.h         |    6 +
 include/asm-i386/mmu.h         |    4 
 include/asm-i386/page.h        |    5 +
 include/asm-i386/pgalloc.h     |    1 
 include/asm-i386/processor.h   |    8 +
 include/asm-ia64/pgalloc.h     |    4 
 include/asm-powerpc/elf.h      |    3 
 include/asm-powerpc/pgalloc.h  |    5 +
 include/asm-ppc/pgalloc.h      |    5 +
 include/asm-s390/pgalloc.h     |    4 
 include/asm-sparc/pgalloc.h    |    4 
 include/asm-sparc64/pgalloc.h  |    4 
 include/asm-x86_64/pgalloc.h   |    7 +
 include/asm-x86_64/pgtable.h   |    2 
 include/linux/mm.h             |   16 +++
 include/linux/resource.h       |    5 -
 include/linux/sched.h          |    9 ++
 include/linux/sysctl.h         |    3 
 kernel/signal.c                |   33 +++++++
 kernel/sysctl.c                |   57 ++++++++++++
 mm/fremap.c                    |   16 ++-
 mm/mmap.c                      |  183 +++++++++++++++++++++++++++++++++++++++--
 mm/mprotect.c                  |    5 -
 mm/mremap.c                    |    4 
 46 files changed, 795 insertions(+), 134 deletions(-)

Index: linux-2.6-execshield.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-execshield.patch,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- linux-2.6-execshield.patch	17 Sep 2006 05:09:38 -0000	1.29
+++ linux-2.6-execshield.patch	17 Sep 2006 06:01:36 -0000	1.30
@@ -1,8 +1,7 @@
-Index: linux/arch/i386/kernel/cpu/common.c
-===================================================================
---- linux.orig/arch/i386/kernel/cpu/common.c
-+++ linux/arch/i386/kernel/cpu/common.c
-@@ -408,6 +408,13 @@ void __devinit identify_cpu(struct cpuin
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/kernel/cpu/common.c linux-810/arch/i386/kernel/cpu/common.c
+--- linux-802/arch/i386/kernel/cpu/common.c
++++ linux-810/arch/i386/kernel/cpu/common.c
+@@ -428,6 +428,13 @@ void __cpuinit identify_cpu(struct cpuin
  	if (disable_pse)
  		clear_bit(X86_FEATURE_PSE, c->x86_capability);
  
@@ -16,11 +15,10 @@
  	/* If the model name is still unset, do table lookup. */
  	if ( !c->x86_model_id[0] ) {
  		char *p;
-Index: linux/arch/i386/kernel/process.c
-===================================================================
---- linux.orig/arch/i386/kernel/process.c
-+++ linux/arch/i386/kernel/process.c
-@@ -638,6 +638,8 @@ struct task_struct fastcall * __switch_t
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/kernel/process.c linux-810/arch/i386/kernel/process.c
+--- linux-802/arch/i386/kernel/process.c
++++ linux-810/arch/i386/kernel/process.c
+@@ -646,6 +646,8 @@ struct task_struct fastcall * __switch_t
  	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
  
  	__unlazy_fpu(prev_p);
@@ -29,7 +27,7 @@
  
  	/*
  	 * Reload esp0.
-@@ -911,3 +913,60 @@ unsigned long arch_align_stack(unsigned 
+@@ -906,3 +908,60 @@ unsigned long arch_align_stack(unsigned 
  		sp -= get_random_int() % 8192;
  	return sp & ~0xf;
  }
@@ -90,10 +88,9 @@
 +		current->mm->brk = new_brk;
 +}
 +
-Index: linux/arch/i386/kernel/smp.c
-===================================================================
---- linux.orig/arch/i386/kernel/smp.c
-+++ linux/arch/i386/kernel/smp.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/kernel/smp.c linux-810/arch/i386/kernel/smp.c
+--- linux-802/arch/i386/kernel/smp.c
++++ linux-810/arch/i386/kernel/smp.c
 @@ -23,6 +23,7 @@
  
  #include <asm/mtrr.h>
@@ -102,7 +99,7 @@
  #include <mach_apic.h>
  
  /*
-@@ -314,6 +315,8 @@ fastcall void smp_invalidate_interrupt(s
+@@ -324,6 +325,8 @@ fastcall void smp_invalidate_interrupt(s
  	unsigned long cpu;
  
  	cpu = get_cpu();
@@ -111,11 +108,23 @@
  
  	if (!cpu_isset(cpu, flush_cpumask))
  		goto out;
-Index: linux/arch/i386/kernel/traps.c
-===================================================================
---- linux.orig/arch/i386/kernel/traps.c
-+++ linux/arch/i386/kernel/traps.c
-@@ -490,7 +490,82 @@ DO_ERROR(10, SIGSEGV, "invalid TSS", inv
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/kernel/sysenter.c linux-810/arch/i386/kernel/sysenter.c
+--- linux-802/arch/i386/kernel/sysenter.c
++++ linux-810/arch/i386/kernel/sysenter.c
+@@ -118,7 +118,8 @@ static struct vm_operations_struct sysca
+ extern void SYSENTER_RETURN;
+ 
+ /* Setup a VMA at program startup for the vsyscall page */
+-int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
++int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack,
++				unsigned long start_code, unsigned long interp_map_address)
+ {
+ 	struct vm_area_struct *vma;
+ 	struct mm_struct *mm = current->mm;
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/kernel/traps.c linux-810/arch/i386/kernel/traps.c
+--- linux-802/arch/i386/kernel/traps.c
++++ linux-810/arch/i386/kernel/traps.c
+@@ -565,7 +565,82 @@ DO_ERROR(10, SIGSEGV, "invalid TSS", inv
  DO_ERROR(11, SIGBUS,  "segment not present", segment_not_present)
  DO_ERROR(12, SIGBUS,  "stack segment", stack_segment)
  DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0)
@@ -199,7 +208,7 @@
  
  fastcall void __kprobes do_general_protection(struct pt_regs * regs,
  					      long error_code)
-@@ -498,6 +573,7 @@ fastcall void __kprobes do_general_prote
+@@ -573,6 +648,7 @@ fastcall void __kprobes do_general_prote
  	int cpu = get_cpu();
  	struct tss_struct *tss = &per_cpu(init_tss, cpu);
  	struct thread_struct *thread = &current->thread;
@@ -207,7 +216,7 @@
  
  	/*
  	 * Perform the lazy TSS's I/O bitmap copy. If the TSS has an
-@@ -524,7 +600,6 @@ fastcall void __kprobes do_general_prote
+@@ -599,7 +675,6 @@ fastcall void __kprobes do_general_prote
  		put_cpu();
  		return;
  	}
@@ -215,7 +224,7 @@
  
  	current->thread.error_code = error_code;
  	current->thread.trap_no = 13;
-@@ -535,17 +610,31 @@ fastcall void __kprobes do_general_prote
+@@ -610,17 +685,31 @@ fastcall void __kprobes do_general_prote
  	if (!user_mode(regs))
  		goto gp_in_kernel;
  
@@ -247,11 +256,10 @@
  	if (!fixup_exception(regs)) {
  		if (notify_die(DIE_GPF, "general protection fault", regs,
  				error_code, 13, SIGSEGV) == NOTIFY_STOP)
-Index: linux/arch/i386/mm/init.c
-===================================================================
---- linux.orig/arch/i386/mm/init.c
-+++ linux/arch/i386/mm/init.c
-@@ -432,7 +432,7 @@ u64 __supported_pte_mask __read_mostly =
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/mm/init.c linux-810/arch/i386/mm/init.c
+--- linux-802/arch/i386/mm/init.c
++++ linux-810/arch/i386/mm/init.c
+@@ -433,7 +433,7 @@ u64 __supported_pte_mask __read_mostly =
   * Control non executable mappings.
   *
   * on      Enable
@@ -260,7 +268,7 @@
   */
  void __init noexec_setup(const char *str)
  {
-@@ -442,6 +442,7 @@ void __init noexec_setup(const char *str
+@@ -443,6 +443,7 @@ void __init noexec_setup(const char *str
  	} else if (!strncmp(str,"off",3)) {
  		disable_nx = 1;
  		__supported_pte_mask &= ~_PAGE_NX;
@@ -268,7 +276,7 @@
  	}
  }
  
-@@ -506,7 +507,10 @@ void __init paging_init(void)
+@@ -507,7 +508,10 @@ void __init paging_init(void)
  	set_nx();
  	if (nx_enabled)
  		printk("NX (Execute Disable) protection: active\n");
@@ -279,10 +287,9 @@
  
  	pagetable_init();
  
-Index: linux/arch/i386/mm/mmap.c
-===================================================================
---- linux.orig/arch/i386/mm/mmap.c
-+++ linux/arch/i386/mm/mmap.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/i386/mm/mmap.c linux-810/arch/i386/mm/mmap.c
+--- linux-802/arch/i386/mm/mmap.c
++++ linux-810/arch/i386/mm/mmap.c
 @@ -62,15 +62,17 @@ void arch_pick_mmap_layout(struct mm_str
  	 * Fall back to the standard layout if the personality
  	 * bit is set, or if the expected stack growth is unlimited:
@@ -303,11 +310,10 @@
  		mm->unmap_area = arch_unmap_area_topdown;
  	}
  }
-Index: linux/arch/ia64/ia32/binfmt_elf32.c
-===================================================================
---- linux.orig/arch/ia64/ia32/binfmt_elf32.c
-+++ linux/arch/ia64/ia32/binfmt_elf32.c
-@@ -264,7 +264,7 @@ elf32_set_personality (void)
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/ia64/ia32/binfmt_elf32.c linux-810/arch/ia64/ia32/binfmt_elf32.c
+--- linux-802/arch/ia64/ia32/binfmt_elf32.c
++++ linux-810/arch/ia64/ia32/binfmt_elf32.c
+@@ -266,7 +266,7 @@ elf32_set_personality (void)
  }
  
  static unsigned long
@@ -316,11 +322,10 @@
  {
  	unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK;
  
-Index: linux/arch/powerpc/kernel/vdso.c
-===================================================================
---- linux.orig/arch/powerpc/kernel/vdso.c
-+++ linux/arch/powerpc/kernel/vdso.c
-@@ -218,7 +218,8 @@ static struct vm_operations_struct vdso_
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/powerpc/kernel/vdso.c linux-810/arch/powerpc/kernel/vdso.c
+--- linux-802/arch/powerpc/kernel/vdso.c
++++ linux-810/arch/powerpc/kernel/vdso.c
+@@ -216,7 +216,8 @@ static struct vm_operations_struct vdso_
   * vDSO and insert it into the mm struct tree
   */
  int arch_setup_additional_pages(struct linux_binprm *bprm,
@@ -330,11 +335,10 @@
  {
  	struct mm_struct *mm = current->mm;
  	struct vm_area_struct *vma;
-Index: linux/arch/x86_64/ia32/ia32_binfmt.c
-===================================================================
---- linux.orig/arch/x86_64/ia32/ia32_binfmt.c
-+++ linux/arch/x86_64/ia32/ia32_binfmt.c
-@@ -247,8 +247,6 @@ elf_core_copy_task_xfpregs(struct task_s
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/ia32/ia32_binfmt.c linux-810/arch/x86_64/ia32/ia32_binfmt.c
+--- linux-802/arch/x86_64/ia32/ia32_binfmt.c
++++ linux-810/arch/x86_64/ia32/ia32_binfmt.c
+@@ -251,8 +251,6 @@ elf_core_copy_task_xfpregs(struct task_s
  #define elf_check_arch(x) \
  	((x)->e_machine == EM_386)
  
@@ -343,7 +347,7 @@
  #define ELF_EXEC_PAGESIZE PAGE_SIZE
  #define ELF_HWCAP (boot_cpu_data.x86_capability[0])
  #define ELF_PLATFORM  ("i686")
-@@ -262,8 +260,6 @@ do {							\
+@@ -266,8 +264,6 @@ do {							\
  		set_thread_flag(TIF_ABI_PENDING);		\
  	else							\
  		clear_thread_flag(TIF_ABI_PENDING);		\
@@ -352,7 +356,7 @@
  } while (0)
  
  /* Override some function names */
-@@ -307,7 +303,7 @@ static void elf32_init(struct pt_regs *)
+@@ -311,7 +307,7 @@ static void elf32_init(struct pt_regs *)
  
  #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
  #define arch_setup_additional_pages syscall32_setup_pages
@@ -361,10 +365,9 @@
  
  #include "../../../fs/binfmt_elf.c" 
  
-Index: linux/arch/x86_64/ia32/syscall32.c
-===================================================================
---- linux.orig/arch/x86_64/ia32/syscall32.c
-+++ linux/arch/x86_64/ia32/syscall32.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/ia32/syscall32.c linux-810/arch/x86_64/ia32/syscall32.c
+--- linux-802/arch/x86_64/ia32/syscall32.c
++++ linux-810/arch/x86_64/ia32/syscall32.c
 @@ -42,7 +42,9 @@ static struct vm_operations_struct sysca
  struct linux_binprm;
  
@@ -376,11 +379,10 @@
  {
  	int npages = (VSYSCALL32_END - VSYSCALL32_BASE) >> PAGE_SHIFT;
  	struct vm_area_struct *vma;
-Index: linux/arch/x86_64/kernel/process.c
-===================================================================
---- linux.orig/arch/x86_64/kernel/process.c
-+++ linux/arch/x86_64/kernel/process.c
-@@ -660,12 +660,6 @@ void set_personality_64bit(void)
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/kernel/process.c linux-810/arch/x86_64/kernel/process.c
+--- linux-802/arch/x86_64/kernel/process.c
++++ linux-810/arch/x86_64/kernel/process.c
+@@ -646,12 +646,6 @@ void set_personality_64bit(void)
  
  	/* Make sure to be in 64bit mode */
  	clear_thread_flag(TIF_IA32); 
@@ -393,10 +395,9 @@
  }
  
  asmlinkage long sys_fork(struct pt_regs *regs)
-Index: linux/arch/x86_64/kernel/setup64.c
-===================================================================
---- linux.orig/arch/x86_64/kernel/setup64.c
-+++ linux/arch/x86_64/kernel/setup64.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/kernel/setup64.c linux-810/arch/x86_64/kernel/setup64.c
+--- linux-802/arch/x86_64/kernel/setup64.c
++++ linux-810/arch/x86_64/kernel/setup64.c
 @@ -46,7 +46,7 @@ Control non executable mappings for 64bi
  on	Enable(default)
  off	Disable
@@ -406,7 +407,7 @@
  {
  	if (!strncmp(str, "on", 2)) {
                  __supported_pte_mask |= _PAGE_NX; 
-@@ -55,28 +55,7 @@ void __init nonx_setup(const char *str)
+@@ -55,28 +55,7 @@ int __init nonx_setup(char *str)
  		do_not_nx = 1;
  		__supported_pte_mask &= ~_PAGE_NX;
          }
@@ -435,11 +436,10 @@
  
  /*
   * Great future plan:
-Index: linux/arch/x86_64/mm/fault.c
-===================================================================
---- linux.orig/arch/x86_64/mm/fault.c
-+++ linux/arch/x86_64/mm/fault.c
-@@ -80,7 +80,7 @@ static noinline int is_prefetch(struct p
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/mm/fault.c linux-810/arch/x86_64/mm/fault.c
+--- linux-802/arch/x86_64/mm/fault.c
++++ linux-810/arch/x86_64/mm/fault.c
+@@ -114,7 +114,7 @@ static noinline int is_prefetch(struct p
  	instr = (unsigned char *)convert_rip_to_linear(current, regs);
  	max_instr = instr + 15;
  
@@ -448,10 +448,9 @@
  		return 0;
  
  	while (scan_more && instr < max_instr) { 
-Index: linux/arch/x86_64/mm/mmap.c
-===================================================================
---- linux.orig/arch/x86_64/mm/mmap.c
-+++ linux/arch/x86_64/mm/mmap.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/arch/x86_64/mm/mmap.c linux-810/arch/x86_64/mm/mmap.c
+--- linux-802/arch/x86_64/mm/mmap.c
++++ linux-810/arch/x86_64/mm/mmap.c
 @@ -1,29 +1,87 @@
 -/* Copyright 2005 Andi Kleen, SuSE Labs.
 - * Licensed under GPL, v.2
@@ -560,11 +559,10 @@
 -	mm->unmap_area = arch_unmap_area;
  }
 -
-Index: linux/drivers/char/random.c
-===================================================================
---- linux.orig/drivers/char/random.c
-+++ linux/drivers/char/random.c
-@@ -1632,13 +1632,18 @@ EXPORT_SYMBOL(secure_dccp_sequence_numbe
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/drivers/char/random.c linux-810/drivers/char/random.c
+--- linux-802/drivers/char/random.c
++++ linux-810/drivers/char/random.c
+@@ -1630,13 +1630,18 @@ EXPORT_SYMBOL(secure_dccp_sequence_numbe
   */
  unsigned int get_random_int(void)
  {
@@ -584,10 +582,9 @@
  }
  
  /*
-Index: linux/fs/binfmt_elf.c
-===================================================================
---- linux.orig/fs/binfmt_elf.c
-+++ linux/fs/binfmt_elf.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/fs/binfmt_elf.c linux-810/fs/binfmt_elf.c
+--- linux-802/fs/binfmt_elf.c
++++ linux-810/fs/binfmt_elf.c
 @@ -45,7 +45,7 @@
  
  static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs);
@@ -688,7 +685,7 @@
  {
  	struct elf_phdr *elf_phdata;
  	struct elf_phdr *eppnt;
-@@ -320,6 +360,7 @@ static unsigned long load_elf_interp(str
+@@ -320,6 +358,7 @@ static unsigned long load_elf_interp(str
  	int load_addr_set = 0;
  	unsigned long last_bss = 0, elf_bss = 0;
  	unsigned long error = ~0UL;
@@ -696,7 +693,7 @@
  	int retval, i, size;
  
  	/* First of all, some simple consistency checks */
-@@ -358,6 +399,10 @@ static unsigned long load_elf_interp(str
+@@ -358,6 +397,10 @@ static unsigned long load_elf_interp(str
  		goto out_close;
  	}
  
@@ -705,9 +702,9 @@
 +		goto out_close;
 +
  	eppnt = elf_phdata;
- 	for (i=0; i<interp_elf_ex->e_phnum; i++, eppnt++) {
- 	  if (eppnt->p_type == PT_LOAD) {
-@@ -419,9 +419,14 @@ static unsigned long load_elf_interp(str
+ 	for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
+ 		if (eppnt->p_type == PT_LOAD) {
+@@ -375,9 +418,14 @@ static unsigned long load_elf_interp(str
  			vaddr = eppnt->p_vaddr;
  			if (interp_elf_ex->e_type == ET_EXEC || load_addr_set)
  				elf_type |= MAP_FIXED;
@@ -723,7 +720,7 @@
  			error = map_addr;
  			if (BAD_ADDR(map_addr))
  				goto out_close;
-@@ -487,8 +492,7 @@ static unsigned long load_elf_interp(str
+@@ -443,8 +491,7 @@ static unsigned long load_elf_interp(str
  			goto out_close;
  	}
  
@@ -733,7 +730,7 @@
  
  out_close:
  	kfree(elf_phdata);
-@@ -528,12 +577,12 @@ static int load_elf_binary(struct linux_
+@@ -540,12 +587,12 @@ static int load_elf_binary(struct linux_
  	int elf_exec_fileno;
  	int retval, i;
  	unsigned int size;
@@ -748,7 +745,7 @@
  	unsigned long def_flags = 0;
  	struct {
  		struct elfhdr elf_ex;
-@@ -689,6 +738,8 @@ static int load_elf_binary(struct linux_
+@@ -700,6 +747,8 @@ static int load_elf_binary(struct linux_
  	}
  
  	elf_ppnt = elf_phdata;
@@ -757,7 +754,7 @@
  	for (i = 0; i < loc->elf_ex.e_phnum; i++, elf_ppnt++)
  		if (elf_ppnt->p_type == PT_GNU_STACK) {
  			if (elf_ppnt->p_flags & PF_X)
-@@ -699,6 +750,11 @@ static int load_elf_binary(struct linux_
+@@ -710,6 +759,11 @@ static int load_elf_binary(struct linux_
  		}
  	have_pt_gnu_stack = (i < loc->elf_ex.e_phnum);
  
@@ -769,7 +766,7 @@
  	/* Some simple consistency checks for the interpreter */
  	if (elf_interpreter) {
  		interpreter_type = INTERPRETER_ELF | INTERPRETER_AOUT;
-@@ -752,6 +808,15 @@ static int load_elf_binary(struct linux_
+@@ -762,6 +816,15 @@ static int load_elf_binary(struct linux_
  	if (retval)
  		goto out_free_dentry;
  
@@ -784,8 +781,8 @@
 +
  	/* Discard our unneeded old files struct */
  	if (files) {
- 		steal_locks(files);
-@@ -770,7 +835,8 @@ static int load_elf_binary(struct linux_
+ 		put_files_struct(files);
+@@ -779,7 +842,8 @@ static int load_elf_binary(struct linux_
  	/* Do this immediately, since STACK_TOP as used in setup_arg_pages
  	   may depend on the personality.  */
  	SET_PERSONALITY(loc->elf_ex, ibcs2_interpreter);
@@ -794,8 +791,8 @@
 +			elf_read_implies_exec(loc->elf_ex, executable_stack))
  		current->personality |= READ_IMPLIES_EXEC;
  
- 	if ( !(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
-@@ -861,9 +865,8 @@ static int load_elf_binary(struct linux_
+ 	if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
+@@ -800,9 +864,8 @@ static int load_elf_binary(struct linux_
  	current->mm->start_stack = bprm->p;
  
  	/* Now we do a little grungy work by mmaping the ELF image into
@@ -807,7 +804,7 @@
  	for(i = 0, elf_ppnt = elf_phdata;
  	    i < loc->elf_ex.e_phnum; i++, elf_ppnt++) {
  		int elf_prot = 0, elf_flags;
-@@ -913,18 +913,17 @@ static int load_elf_binary(struct linux_
+@@ -849,18 +912,17 @@ static int load_elf_binary(struct linux_
  		elf_flags = MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE;
  
  		vaddr = elf_ppnt->p_vaddr;
@@ -824,8 +821,8 @@
 +			load_bias = 0;
 +#else
  			load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
-+#endif
 -		}
++#endif
  
  		error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
 -				elf_prot, elf_flags);
@@ -833,7 +830,7 @@
  		if (BAD_ADDR(error)) {
  			send_sig(SIGKILL, current, 0);
  			goto out_free_dentry;
-@@ -920,10 +986,17 @@ static int load_elf_binary(struct linux_
+@@ -936,10 +998,17 @@ static int load_elf_binary(struct linux_
  		if (interpreter_type == INTERPRETER_AOUT)
  			elf_entry = load_aout_interp(&loc->interp_ex,
  						     interpreter);
@@ -851,9 +848,9 @@
 +			}
 +		}
  		if (BAD_ADDR(elf_entry)) {
- 			printk(KERN_ERR "Unable to load interpreter %.128s\n",
- 				elf_interpreter);
-@@ -945,21 +1018,22 @@ static int load_elf_binary(struct linux_
+ 			force_sig(SIGSEGV, current);
+ 			retval = IS_ERR((void *)elf_entry) ?
+@@ -960,21 +1029,22 @@ static int load_elf_binary(struct linux_
  		}
  	}
  
@@ -879,8 +876,8 @@
 +
  	compute_creds(bprm);
  	current->flags &= ~PF_FORKNOEXEC;
- 	create_elf_tables(bprm, &loc->elf_ex, (interpreter_type == INTERPRETER_AOUT),
-@@ -973,6 +1047,10 @@ static int load_elf_binary(struct linux_
+ 	create_elf_tables(bprm, &loc->elf_ex,
+@@ -989,6 +1059,10 @@ static int load_elf_binary(struct linux_
  	current->mm->end_data = end_data;
  	current->mm->start_stack = bprm->p;
  
@@ -891,7 +888,7 @@
  	if (current->personality & MMAP_PAGE_ZERO) {
  		/* Why this, you ask???  Well SVr4 maps page 0 as read-only,
  		   and some applications "depend" upon this behavior.
-@@ -1251,6 +1251,9 @@ static int maydump(struct vm_area_struct
+@@ -1168,6 +1242,9 @@ static int maydump(struct vm_area_struct
  	if (vma->vm_flags & (VM_IO | VM_RESERVED))
  		return 0;
  
@@ -901,12 +898,11 @@
  	/* Dump shared memory only if mapped from an anonymous file. */
  	if (vma->vm_flags & VM_SHARED)
  		return vma->vm_file->f_dentry->d_inode->i_nlink == 0;
-Index: linux/fs/proc/array.c
-===================================================================
---- linux.orig/fs/proc/array.c
-+++ linux/fs/proc/array.c
-@@ -391,8 +391,12 @@ static int do_task_stat(struct task_stru
- 	ppid = pid_alive(task) ? task->group_leader->real_parent->tgid : 0;
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/fs/proc/array.c linux-810/fs/proc/array.c
+--- linux-802/fs/proc/array.c
++++ linux-810/fs/proc/array.c
+@@ -397,8 +397,12 @@ static int do_task_stat(struct task_stru
+ 	ppid = pid_alive(task) ? task->group_leader->parent->tgid : 0;
  	read_unlock(&tasklist_lock);
  
 -	if (!whole || num_threads<2)
@@ -920,11 +916,10 @@
  	if (!whole) {
  		min_flt = task->min_flt;
  		maj_flt = task->maj_flt;
-Index: linux/fs/proc/base.c
-===================================================================
---- linux.orig/fs/proc/base.c
-+++ linux/fs/proc/base.c
-@@ -189,7 +189,7 @@ static struct pid_entry tgid_base_stuff[
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/fs/proc/base.c linux-810/fs/proc/base.c
+--- linux-802/fs/proc/base.c
++++ linux-810/fs/proc/base.c
+@@ -208,7 +208,7 @@ static struct pid_entry tgid_base_stuff[
  	E(PROC_TGID_CMDLINE,   "cmdline", S_IFREG|S_IRUGO),
  	E(PROC_TGID_STAT,      "stat",    S_IFREG|S_IRUGO),
  	E(PROC_TGID_STATM,     "statm",   S_IFREG|S_IRUGO),
@@ -933,16 +928,16 @@
  #ifdef CONFIG_NUMA
  	E(PROC_TGID_NUMA_MAPS, "numa_maps", S_IFREG|S_IRUGO),
  #endif
-@@ -202,7 +202,7 @@ static struct pid_entry tgid_base_stuff[
- 	E(PROC_TGID_EXE,       "exe",     S_IFLNK|S_IRWXUGO),
+@@ -222,7 +222,7 @@ static struct pid_entry tgid_base_stuff[
  	E(PROC_TGID_MOUNTS,    "mounts",  S_IFREG|S_IRUGO),
+ 	E(PROC_TGID_MOUNTSTATS, "mountstats", S_IFREG|S_IRUSR),
  #ifdef CONFIG_MMU
 -	E(PROC_TGID_SMAPS,     "smaps",   S_IFREG|S_IRUGO),
 +	E(PROC_TGID_SMAPS,     "smaps",   S_IFREG|S_IRUSR),
  #endif
  #ifdef CONFIG_SECURITY
  	E(PROC_TGID_ATTR,      "attr",    S_IFDIR|S_IRUGO|S_IXUGO),
-@@ -231,7 +231,7 @@ static struct pid_entry tid_base_stuff[]
+@@ -251,7 +251,7 @@ static struct pid_entry tid_base_stuff[]
  	E(PROC_TID_CMDLINE,    "cmdline", S_IFREG|S_IRUGO),
  	E(PROC_TID_STAT,       "stat",    S_IFREG|S_IRUGO),
  	E(PROC_TID_STATM,      "statm",   S_IFREG|S_IRUGO),
@@ -951,7 +946,7 @@
  #ifdef CONFIG_NUMA
  	E(PROC_TID_NUMA_MAPS,  "numa_maps",    S_IFREG|S_IRUGO),
  #endif
-@@ -244,7 +244,7 @@ static struct pid_entry tid_base_stuff[]
+@@ -264,7 +264,7 @@ static struct pid_entry tid_base_stuff[]
  	E(PROC_TID_EXE,        "exe",     S_IFLNK|S_IRWXUGO),
  	E(PROC_TID_MOUNTS,     "mounts",  S_IFREG|S_IRUGO),
  #ifdef CONFIG_MMU
@@ -960,10 +955,9 @@
  #endif
  #ifdef CONFIG_SECURITY
  	E(PROC_TID_ATTR,       "attr",    S_IFDIR|S_IRUGO|S_IXUGO),
-Index: linux/fs/proc/task_mmu.c
-===================================================================
---- linux.orig/fs/proc/task_mmu.c
-+++ linux/fs/proc/task_mmu.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/fs/proc/task_mmu.c linux-810/fs/proc/task_mmu.c
+--- linux-802/fs/proc/task_mmu.c
++++ linux-810/fs/proc/task_mmu.c
 @@ -43,7 +43,11 @@ char *task_mem(struct mm_struct *mm, cha
  		"VmStk:\t%8lu kB\n"
  		"VmExe:\t%8lu kB\n"
@@ -992,25 +986,41 @@
  	return buffer;
  }
  
-@@ -140,7 +150,13 @@ static int show_map_internal(struct seq_
+@@ -130,6 +140,9 @@ __attribute__((weak)) const char *arch_v
+ static int show_map_internal(struct seq_file *m, void *v, struct mem_size_stats *mss)
+ {
+ 	struct proc_maps_private *priv = m->private;
++#ifdef __i386__
++	struct mm_struct *tmm = get_task_mm(task);
++#endif
+ 	struct task_struct *task = priv->task;
+ 	struct vm_area_struct *vma = v;
+ 	struct mm_struct *mm = vma->vm_mm;
+@@ -150,10 +163,20 @@ static int show_map_internal(struct seq_
  			vma->vm_end,
  			flags & VM_READ ? 'r' : '-',
  			flags & VM_WRITE ? 'w' : '-',
 -			flags & VM_EXEC ? 'x' : '-',
 +			(flags & VM_EXEC
 +#ifdef __i386__
-+				|| (!nx_enabled &&
-+				(vma->vm_start < task->mm->context.exec_limit))
++				|| (!nx_enabled && tmm &&
++				(vma->vm_start < tmm->context.exec_limit))
 +#endif
 +			)
 +				? 'x' : '-',
  			flags & VM_MAYSHARE ? 's' : 'p',
  			vma->vm_pgoff << PAGE_SHIFT,
  			MAJOR(dev), MINOR(dev), ino, &len);
-Index: linux/include/asm-i386/a.out.h
-===================================================================
---- linux.orig/include/asm-i386/a.out.h
-+++ linux/include/asm-i386/a.out.h
++#ifdef __i386__
++	if (tmm)
++		mmput(tmm);
++#endif
+ 
+ 	/*
+ 	 * Print the dentry name for named mappings, and a
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/a.out.h linux-810/include/asm-i386/a.out.h
+--- linux-802/include/asm-i386/a.out.h
++++ linux-810/include/asm-i386/a.out.h
 @@ -19,7 +19,7 @@ struct exec
  
  #ifdef __KERNEL__
@@ -1020,10 +1030,9 @@
  
  #endif
  
-Index: linux/include/asm-i386/desc.h
-===================================================================
---- linux.orig/include/asm-i386/desc.h
-+++ linux/include/asm-i386/desc.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/desc.h linux-810/include/asm-i386/desc.h
+--- linux-802/include/asm-i386/desc.h
++++ linux-810/include/asm-i386/desc.h
 @@ -162,6 +162,20 @@ static inline unsigned long get_desc_bas
  	return base;
  }
@@ -1045,9 +1054,10 @@
  #endif /* !__ASSEMBLY__ */
  
  #endif
---- linux-2.6.17.noarch/include/asm-i386/elf.h~	2006-06-29 00:53:28.000000000 -0400
-+++ linux-2.6.17.noarch/include/asm-i386/elf.h	2006-06-29 00:54:04.000000000 -0400
-@@ -157,7 +157,8 @@ extern void __kernel_vsyscall;
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/elf.h linux-810/include/asm-i386/elf.h
+--- linux-802/include/asm-i386/elf.h
++++ linux-810/include/asm-i386/elf.h
+@@ -159,7 +159,8 @@ extern void __kernel_vsyscall;
  #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
  struct linux_binprm;
  extern int arch_setup_additional_pages(struct linux_binprm *bprm,
@@ -1057,7 +1067,7 @@
  
  extern unsigned int vdso_enabled;
  
-@@ -214,4 +214,7 @@ do {									      \
+@@ -215,4 +216,7 @@ do {									      \
  
  #endif
  
@@ -1065,8 +1075,9 @@
 +extern void randomize_brk(unsigned long old_brk);
 +
  #endif
---- linux-2.6.17.noarch/include/asm-i386/mmu.h~	2006-06-29 04:33:38.000000000 -0400
-+++ linux-2.6.17.noarch/include/asm-i386/mmu.h	2006-06-29 04:33:58.000000000 -0400
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/mmu.h linux-810/include/asm-i386/mmu.h
+--- linux-802/include/asm-i386/mmu.h
++++ linux-810/include/asm-i386/mmu.h
 @@ -7,11 +7,15 @@
   * we put the segment information here.
   *
@@ -1083,11 +1094,10 @@
  	void *vdso;
  } mm_context_t;
  
-Index: linux/include/asm-i386/page.h
-===================================================================
---- linux.orig/include/asm-i386/page.h
-+++ linux/include/asm-i386/page.h
-@@ -118,6 +118,11 @@ extern int page_is_ram(unsigned long pag
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/page.h linux-810/include/asm-i386/page.h
+--- linux-802/include/asm-i386/page.h
++++ linux-810/include/asm-i386/page.h
+@@ -119,6 +119,11 @@ extern int page_is_ram(unsigned long pag
  #endif
  #define __KERNEL_START		(__PAGE_OFFSET + __PHYSICAL_START)
  
@@ -1099,23 +1109,21 @@
  
  #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
  #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)
-Index: linux/include/asm-i386/pgalloc.h
-===================================================================
---- linux.orig/include/asm-i386/pgalloc.h
-+++ linux/include/asm-i386/pgalloc.h
-@@ -3,6 +3,7 @@
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/pgalloc.h linux-810/include/asm-i386/pgalloc.h
+--- linux-802/include/asm-i386/pgalloc.h
++++ linux-810/include/asm-i386/pgalloc.h
+@@ -2,6 +2,7 @@
+ #define _I386_PGALLOC_H
  
- #include <linux/config.h>
  #include <asm/fixmap.h>
 +#include <asm/desc.h>
  #include <linux/threads.h>
  #include <linux/mm.h>		/* for struct page */
  
-Index: linux/include/asm-i386/processor.h
-===================================================================
---- linux.orig/include/asm-i386/processor.h
-+++ linux/include/asm-i386/processor.h
-@@ -323,7 +323,10 @@ extern int bootloader_type;
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-i386/processor.h linux-810/include/asm-i386/processor.h
+--- linux-802/include/asm-i386/processor.h
++++ linux-810/include/asm-i386/processor.h
+@@ -330,7 +330,10 @@ extern int bootloader_type;
  /* This decides where the kernel will search for a free chunk of vm
   * space during mmap's.
   */
@@ -1127,7 +1135,7 @@
  
  #define HAVE_ARCH_PICK_MMAP_LAYOUT
  
-@@ -505,6 +508,9 @@ static inline void load_esp0(struct tss_
+@@ -512,6 +515,9 @@ static inline void load_esp0(struct tss_
  	regs->xcs = __USER_CS;					\
  	regs->eip = new_eip;					\
  	regs->esp = new_esp;					\
@@ -1137,10 +1145,9 @@
  } while (0)
  
  /*
-Index: linux/include/asm-ia64/pgalloc.h
-===================================================================
---- linux.orig/include/asm-ia64/pgalloc.h
-+++ linux/include/asm-ia64/pgalloc.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-ia64/pgalloc.h linux-810/include/asm-ia64/pgalloc.h
+--- linux-802/include/asm-ia64/pgalloc.h
++++ linux-810/include/asm-ia64/pgalloc.h
 @@ -1,6 +1,10 @@
  #ifndef _ASM_IA64_PGALLOC_H
  #define _ASM_IA64_PGALLOC_H
@@ -1152,12 +1159,24 @@
  /*
   * This file contains the functions and defines necessary to allocate
   * page tables.
-Index: linux/include/asm-powerpc/pgalloc.h
-===================================================================
---- linux.orig/include/asm-powerpc/pgalloc.h
-+++ linux/include/asm-powerpc/pgalloc.h
-@@ -24,6 +24,11 @@ extern kmem_cache_t *pgtable_cache[];
- #define PGD_CACHE_NUM	0
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-powerpc/elf.h linux-810/include/asm-powerpc/elf.h
+--- linux-802/include/asm-powerpc/elf.h
++++ linux-810/include/asm-powerpc/elf.h
+@@ -272,7 +272,8 @@ extern int ucache_bsize;
+ #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
+ struct linux_binprm;
+ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
+-				       int executable_stack);
++				       int executable_stack, unsigned long start_code,
++					   unsigned long interp_map_address);
+ #define VDSO_AUX_ENT(a,b) NEW_AUX_ENT(a,b);
+ 
+ /*
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-powerpc/pgalloc.h linux-810/include/asm-powerpc/pgalloc.h
+--- linux-802/include/asm-powerpc/pgalloc.h
++++ linux-810/include/asm-powerpc/pgalloc.h
+@@ -26,6 +26,11 @@ extern kmem_cache_t *pgtable_cache[];
+ #define HUGEPTE_CACHE_NUM 2
  #endif
  
 +/* Dummy functions since we don't support execshield on ppc */
@@ -1168,11 +1187,10 @@
  /*
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License
-Index: linux/include/asm-ppc/pgalloc.h
-===================================================================
---- linux.orig/include/asm-ppc/pgalloc.h
-+++ linux/include/asm-ppc/pgalloc.h
-@@ -40,5 +40,10 @@ extern void pte_free(struct page *pte);
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-ppc/pgalloc.h linux-810/include/asm-ppc/pgalloc.h
+--- linux-802/include/asm-ppc/pgalloc.h
++++ linux-810/include/asm-ppc/pgalloc.h
+@@ -39,5 +39,10 @@ extern void pte_free(struct page *pte);
  
  #define check_pgt_cache()	do { } while (0)
  
@@ -1183,11 +1201,10 @@
 +
  #endif /* _PPC_PGALLOC_H */
  #endif /* __KERNEL__ */
-Index: linux/include/asm-s390/pgalloc.h
-===================================================================
---- linux.orig/include/asm-s390/pgalloc.h
-+++ linux/include/asm-s390/pgalloc.h
-@@ -18,6 +18,10 @@
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-s390/pgalloc.h linux-810/include/asm-s390/pgalloc.h
+--- linux-802/include/asm-s390/pgalloc.h
++++ linux-810/include/asm-s390/pgalloc.h
+@@ -17,6 +17,10 @@
  #include <linux/gfp.h>
  #include <linux/mm.h>
  
@@ -1198,11 +1215,10 @@
  #define check_pgt_cache()	do {} while (0)
  
  extern void diag10(unsigned long addr);
-Index: linux/include/asm-sparc/pgalloc.h
-===================================================================
---- linux.orig/include/asm-sparc/pgalloc.h
-+++ linux/include/asm-sparc/pgalloc.h
-@@ -66,4 +66,8 @@ BTFIXUPDEF_CALL(void, pte_free, struct p
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-sparc/pgalloc.h linux-810/include/asm-sparc/pgalloc.h
+--- linux-802/include/asm-sparc/pgalloc.h
++++ linux-810/include/asm-sparc/pgalloc.h
+@@ -65,4 +65,8 @@ BTFIXUPDEF_CALL(void, pte_free, struct p
  #define pte_free(pte)		BTFIXUP_CALL(pte_free)(pte)
  #define __pte_free_tlb(tlb, pte)	pte_free(pte)
  
@@ -1211,23 +1227,21 @@
 +#define arch_remove_exec_range(mm, limit)	do { ; } while (0)
 +
  #endif /* _SPARC_PGALLOC_H */
-Index: linux/include/asm-sparc64/pgalloc.h
-===================================================================
---- linux.orig/include/asm-sparc64/pgalloc.h
-+++ linux/include/asm-sparc64/pgalloc.h
-@@ -181,4 +181,8 @@ static inline void pte_free(struct page 
- #define pgd_free(pgd)		free_pgd_fast(pgd)
- #define pgd_alloc(mm)		get_pgd_fast()
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-sparc64/pgalloc.h linux-810/include/asm-sparc64/pgalloc.h
+--- linux-802/include/asm-sparc64/pgalloc.h
++++ linux-810/include/asm-sparc64/pgalloc.h
+@@ -68,4 +68,8 @@ static inline void pte_free(struct page 
+ 
+ #define check_pgt_cache()	do { } while (0)
  
 +#define arch_add_exec_range(mm, limit)		do { ; } while (0)
 +#define arch_flush_exec_range(mm)		do { ; } while (0)
 +#define arch_remove_exec_range(mm, limit)	do { ; } while (0)
 +
  #endif /* _SPARC64_PGALLOC_H */
-Index: linux/include/asm-x86_64/pgalloc.h
-===================================================================
---- linux.orig/include/asm-x86_64/pgalloc.h
-+++ linux/include/asm-x86_64/pgalloc.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-x86_64/pgalloc.h linux-810/include/asm-x86_64/pgalloc.h
+--- linux-802/include/asm-x86_64/pgalloc.h
++++ linux-810/include/asm-x86_64/pgalloc.h
 @@ -6,6 +6,13 @@
  #include <linux/threads.h>
  #include <linux/mm.h>
@@ -1242,10 +1256,9 @@
  #define pmd_populate_kernel(mm, pmd, pte) \
  		set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte)))
  #define pud_populate(mm, pud, pmd) \
-Index: linux/include/asm-x86_64/pgtable.h
-===================================================================
---- linux.orig/include/asm-x86_64/pgtable.h
-+++ linux/include/asm-x86_64/pgtable.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/asm-x86_64/pgtable.h linux-810/include/asm-x86_64/pgtable.h
+--- linux-802/include/asm-x86_64/pgtable.h
++++ linux-810/include/asm-x86_64/pgtable.h
 @@ -21,7 +21,7 @@ extern unsigned long __supported_pte_mas
  
  #define swapper_pg_dir init_level4_pgt
@@ -1255,11 +1268,10 @@
  extern void paging_init(void);
  extern void clear_kernel_mapping(unsigned long addr, unsigned long size);
  
-Index: linux/include/linux/mm.h
-===================================================================
---- linux.orig/include/linux/mm.h
-+++ linux/include/linux/mm.h
-@@ -916,7 +916,19 @@ extern struct vm_area_struct *copy_vma(s
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/linux/mm.h linux-810/include/linux/mm.h
+--- linux-802/include/linux/mm.h
++++ linux-810/include/linux/mm.h
+@@ -930,7 +930,19 @@ extern struct vm_area_struct *copy_vma(s
  extern void exit_mmap(struct mm_struct *);
  extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
  
@@ -1280,7 +1292,7 @@
  
  extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
  	unsigned long len, unsigned long prot,
-@@ -968,7 +980,7 @@ unsigned long page_cache_readahead(struc
+@@ -982,7 +994,7 @@ unsigned long page_cache_readahead(struc
  			  struct file *filp,
  			  pgoff_t offset,
  			  unsigned long size);
@@ -1289,11 +1301,10 @@
  		    struct file_ra_state *ra, pgoff_t offset);
  unsigned long max_sane_readahead(unsigned long nr);
  
-Index: linux/include/linux/resource.h
-===================================================================
---- linux.orig/include/linux/resource.h
-+++ linux/include/linux/resource.h
-@@ -52,8 +52,11 @@ struct rlimit {
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/linux/resource.h linux-810/include/linux/resource.h
+--- linux-802/include/linux/resource.h
++++ linux-810/include/linux/resource.h
+@@ -54,8 +54,11 @@ struct rlimit {
  /*
   * Limit the stack by to some sane default: root can always
   * increase this limit if needed..  8MB seems reasonable.
@@ -1306,10 +1317,9 @@
  
  /*
   * GPG wants 32kB of mlocked memory, to make sure pass phrases
-Index: linux/include/linux/sched.h
-===================================================================
---- linux.orig/include/linux/sched.h
-+++ linux/include/linux/sched.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/linux/sched.h linux-810/include/linux/sched.h
+--- linux-802/include/linux/sched.h
++++ linux-810/include/linux/sched.h
 @@ -85,6 +85,8 @@ struct sched_param {
  
  struct exec_domain;
@@ -1319,7 +1329,7 @@
  
  /*
   * List of flags we want to share for kernel threads,
-@@ -245,6 +247,10 @@ extern int sysctl_max_map_count;
+@@ -250,6 +252,10 @@ extern int sysctl_max_map_count;
  extern unsigned long
  arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
  		       unsigned long, unsigned long);
@@ -1330,7 +1340,7 @@
  extern unsigned long
  arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
  			  unsigned long len, unsigned long pgoff,
-@@ -297,6 +303,9 @@ struct mm_struct {
+@@ -302,6 +308,9 @@ struct mm_struct {
  	unsigned long (*get_unmapped_area) (struct file *filp,
  				unsigned long addr, unsigned long len,
  				unsigned long pgoff, unsigned long flags);
@@ -1340,10 +1350,9 @@
  	void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
  	unsigned long mmap_base;		/* base of mmap area */
  	unsigned long task_size;		/* size of task vm space */
-Index: linux/include/linux/sysctl.h
-===================================================================
---- linux.orig/include/linux/sysctl.h
-+++ linux/include/linux/sysctl.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/include/linux/sysctl.h linux-810/include/linux/sysctl.h
+--- linux-802/include/linux/sysctl.h
++++ linux-810/include/linux/sysctl.h
 @@ -92,6 +92,9 @@ enum
  
  	KERN_CAP_BSET=14,	/* int: capability bounding set */
@@ -1354,11 +1363,10 @@
  	KERN_REALROOTDEV=16,	/* real root device to mount after initrd */
  
  	KERN_SPARC_REBOOT=21,	/* reboot command on Sparc */
-Index: linux/kernel/signal.c
-===================================================================
---- linux.orig/kernel/signal.c
-+++ linux/kernel/signal.c
-@@ -869,6 +869,37 @@ out_set:
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/kernel/signal.c linux-810/kernel/signal.c
+--- linux-802/kernel/signal.c
++++ linux-810/kernel/signal.c
+@@ -759,6 +759,37 @@ out_set:
  #define LEGACY_QUEUE(sigptr, sig) \
  	(((sig) < SIGRTMIN) && sigismember(&(sigptr)->signal, (sig)))
  
@@ -1396,7 +1404,7 @@
  
  static int
  specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
-@@ -2031,6 +2067,8 @@ relock:
+@@ -1753,6 +1784,8 @@ relock:
  		 * Anything else is fatal, maybe with a core dump.
  		 */
  		current->flags |= PF_SIGNALED;
@@ -1405,11 +1413,10 @@
  		if (sig_kernel_coredump(signr)) {
  			/*
  			 * If it was able to dump core, this kills all
-Index: linux/kernel/sysctl.c
-===================================================================
---- linux.orig/kernel/sysctl.c
-+++ linux/kernel/sysctl.c
-@@ -79,6 +79,29 @@ extern int proc_unknown_nmi_panic(ctl_ta
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/kernel/sysctl.c linux-810/kernel/sysctl.c
+--- linux-802/kernel/sysctl.c
++++ linux-810/kernel/sysctl.c
+@@ -80,6 +80,29 @@ extern int proc_unknown_nmi_panic(ctl_ta
  				  void __user *, size_t *, loff_t *);
  #endif
  
@@ -1439,7 +1446,7 @@
  /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
  static int maxolduid = 65535;
  static int minolduid;
-@@ -284,6 +307,40 @@ static ctl_table kern_table[] = {
+@@ -282,6 +305,40 @@ static ctl_table kern_table[] = {
  		.proc_handler	= &proc_dointvec,
  	},
  	{
@@ -1480,10 +1487,9 @@
  		.ctl_name	= KERN_CORE_USES_PID,
  		.procname	= "core_uses_pid",
  		.data		= &core_uses_pid,
-Index: linux/mm/fremap.c
-===================================================================
---- linux.orig/mm/fremap.c
-+++ linux/mm/fremap.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/mm/fremap.c linux-810/mm/fremap.c
+--- linux-802/mm/fremap.c
++++ linux-810/mm/fremap.c
 @@ -67,13 +67,15 @@ int install_page(struct mm_struct *mm, s
  	 * caller about it.
  	 */
@@ -1507,10 +1513,9 @@
  
  	if (pte_none(*pte) || !zap_pte(mm, vma, addr, pte))
  		inc_mm_counter(mm, file_rss);
-Index: linux/mm/mmap.c
-===================================================================
---- linux.orig/mm/mmap.c
-+++ linux/mm/mmap.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/mm/mmap.c linux-810/mm/mmap.c
+--- linux-802/mm/mmap.c
++++ linux-810/mm/mmap.c
 @@ -25,6 +25,7 @@
  #include <linux/mount.h>
  #include <linux/mempolicy.h>
@@ -1519,7 +1524,7 @@
  
  #include <asm/uaccess.h>
  #include <asm/cacheflush.h>
-@@ -342,6 +343,8 @@ static inline void
+@@ -370,6 +371,8 @@ static inline void
  __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
  		struct vm_area_struct *prev, struct rb_node *rb_parent)
  {
@@ -1528,7 +1533,7 @@
  	if (prev) {
  		vma->vm_next = prev->vm_next;
  		prev->vm_next = vma;
-@@ -446,6 +449,8 @@ __vma_unlink(struct mm_struct *mm, struc
+@@ -473,6 +476,8 @@ __vma_unlink(struct mm_struct *mm, struc
  	rb_erase(&vma->vm_rb, &mm->mm_rb);
  	if (mm->mmap_cache == vma)
  		mm->mmap_cache = prev;
@@ -1537,7 +1542,7 @@
  }
  
  /*
-@@ -751,6 +756,8 @@ struct vm_area_struct *vma_merge(struct 
+@@ -778,6 +783,8 @@ struct vm_area_struct *vma_merge(struct 
  		} else					/* cases 2, 5, 7 */
  			vma_adjust(prev, prev->vm_start,
  				end, prev->vm_pgoff, NULL);
@@ -1546,7 +1551,7 @@
  		return prev;
  	}
  
-@@ -922,7 +929,7 @@ unsigned long do_mmap_pgoff(struct file 
+@@ -944,7 +951,7 @@ unsigned long do_mmap_pgoff(struct file 
  	/* Obtain the address to map to. we verify (or select) it and ensure
  	 * that it represents a valid section of the address space.
  	 */
@@ -1555,7 +1560,7 @@
  	if (addr & ~PAGE_MASK)
  		return addr;
  
-@@ -1328,16 +1335,21 @@ void arch_unmap_area_topdown(struct mm_s
+@@ -1356,16 +1363,21 @@ void arch_unmap_area_topdown(struct mm_s
  		mm->free_area_cache = mm->mmap_base;
  }
  
@@ -1580,7 +1585,7 @@
  		if (file && file->f_op && file->f_op->get_unmapped_area)
  			get_area = file->f_op->get_unmapped_area;
  		addr = get_area(file, addr, len, pgoff, flags);
-@@ -1368,7 +1380,71 @@ get_unmapped_area(struct file *file, uns
+@@ -1396,7 +1408,71 @@ get_unmapped_area(struct file *file, uns
  	return addr;
  }
  
@@ -1653,7 +1658,7 @@
  
  /* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
  struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr)
-@@ -1443,6 +1519,14 @@ out:
+@@ -1471,6 +1547,14 @@ out:
  	return prev ? prev->vm_next : vma;
  }
  
@@ -1668,7 +1673,7 @@
  /*
   * Verify that the stack growth is acceptable and
   * update accounting. This is shared with both the
-@@ -1458,7 +1542,7 @@ static int acct_stack_growth(struct vm_a
+@@ -1486,7 +1570,7 @@ static int acct_stack_growth(struct vm_a
  		return -ENOMEM;
  
  	/* Stack limit test */
@@ -1677,7 +1682,7 @@
  		return -ENOMEM;
  
  	/* mlock limit tests */
-@@ -1738,10 +1822,14 @@ int split_vma(struct mm_struct * mm, str
+@@ -1766,10 +1850,14 @@ int split_vma(struct mm_struct * mm, str
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
  
@@ -1694,7 +1699,7 @@
  		vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
  	return 0;
-@@ -1946,6 +2034,7 @@ void exit_mmap(struct mm_struct *mm)
+@@ -1979,6 +2067,7 @@ void exit_mmap(struct mm_struct *mm)
  	vm_unacct_memory(nr_accounted);
  	free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0);
  	tlb_finish_mmu(tlb, 0, end);
@@ -1702,7 +1707,7 @@
  
  	/*
  	 * Walk the list again, actually closing and freeing it,
-@@ -2061,3 +2150,81 @@ int may_expand_vm(struct mm_struct *mm, 
+@@ -2094,3 +2183,81 @@ int may_expand_vm(struct mm_struct *mm, 
  		return 0;
  	return 1;
  }
@@ -1784,19 +1789,18 @@
 +
 +	return err;
 +}
-Index: linux/mm/mprotect.c
-===================================================================
---- linux.orig/mm/mprotect.c
-+++ linux/mm/mprotect.c
-@@ -22,6 +22,7 @@
- 
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/mm/mprotect.c linux-810/mm/mprotect.c
+--- linux-802/mm/mprotect.c
++++ linux-810/mm/mprotect.c
+@@ -23,6 +23,7 @@
+ #include <linux/swapops.h>
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
 +#include <asm/pgalloc.h>
  #include <asm/cacheflush.h>
  #include <asm/tlbflush.h>
  
-@@ -123,7 +123,7 @@ mprotect_fixup(struct vm_area_struct *vm
+@@ -122,7 +123,7 @@ mprotect_fixup(struct vm_area_struct *vm
  	struct mm_struct *mm = vma->vm_mm;
  	unsigned long oldflags = vma->vm_flags;
  	long nrpages = (end - start) >> PAGE_SHIFT;
@@ -1805,7 +1809,7 @@
  	unsigned int mask;
  	pgprot_t newprot;
  	pgoff_t pgoff;
-@@ -167,6 +167,8 @@ success:
+@@ -190,6 +191,8 @@ success:
  	 */
  	vma->vm_flags = newflags;
  	vma->vm_page_prot = newprot;
@@ -1814,10 +1818,9 @@
  	if (is_vm_hugetlb_page(vma))
  		hugetlb_change_protection(vma, start, end, newprot);
  	else
-Index: linux/mm/mremap.c
-===================================================================
---- linux.orig/mm/mremap.c
-+++ linux/mm/mremap.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-802/mm/mremap.c linux-810/mm/mremap.c
+--- linux-802/mm/mremap.c
++++ linux-810/mm/mremap.c
 @@ -387,8 +387,8 @@ unsigned long do_mremap(unsigned long ad
  			if (vma->vm_flags & VM_MAYSHARE)
  				map_flags |= MAP_SHARED;
@@ -1829,60 +1832,3 @@
  			ret = new_addr;
  			if (new_addr & ~PAGE_MASK)
  				goto out;
---- linux-2.6.16.noarch/include/asm-powerpc/elf.h~	2006-03-20 21:52:50.000000000 -0500
-+++ linux-2.6.16.noarch/include/asm-powerpc/elf.h	2006-03-20 21:53:20.000000000 -0500
-@@ -273,7 +273,8 @@ extern int ucache_bsize;
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
- struct linux_binprm;
- extern int arch_setup_additional_pages(struct linux_binprm *bprm,
--				       int executable_stack);
-+				       int executable_stack, unsigned long start_code,
-+					   unsigned long interp_map_address);
- #define VDSO_AUX_ENT(a,b) NEW_AUX_ENT(a,b);
- 
- /*
---- linux-2.6.17.noarch/arch/i386/kernel/sysenter.c~	2006-06-29 03:10:22.000000000 -0400
-+++ linux-2.6.17.noarch/arch/i386/kernel/sysenter.c	2006-06-29 03:11:25.000000000 -0400
-@@ -118,7 +118,8 @@ static struct vm_operations_struct sysca
- extern void SYSENTER_RETURN;
- 
- /* Setup a VMA at program startup for the vsyscall page */
--int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
-+int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack,
-+				unsigned long start_code, unsigned long interp_map_address)
- {
- 	struct vm_area_struct *vma;
- 	struct mm_struct *mm = current->mm;
---- linux-2.6.17.noarch/fs/proc/task_mmu.c~	2006-09-17 01:05:33.000000000 -0400
-+++ linux-2.6.17.noarch/fs/proc/task_mmu.c	2006-09-17 01:06:42.000000000 -0400
-@@ -140,6 +140,9 @@ __attribute__((weak)) const char *arch_v
- static int show_map_internal(struct seq_file *m, void *v, struct mem_size_stats *mss)
- {
- 	struct proc_maps_private *priv = m->private;
-+#ifdef __i386__
-+	struct mm_struct *tmm = get_task_mm(task);
-+#endif
- 	struct task_struct *task = priv->task;
- 	struct vm_area_struct *vma = v;
- 	struct mm_struct *mm = vma->vm_mm;
-@@ -162,14 +165,18 @@ static int show_map_internal(struct seq_
- 			flags & VM_WRITE ? 'w' : '-',
- 			(flags & VM_EXEC
- #ifdef __i386__
--				|| (!nx_enabled &&
--				(vma->vm_start < task->mm->context.exec_limit))
-+				|| (!nx_enabled && tmm &&
-+				(vma->vm_start < tmm->context.exec_limit))
- #endif
- 			)
- 				? 'x' : '-',
- 			flags & VM_MAYSHARE ? 's' : 'p',
- 			vma->vm_pgoff << PAGE_SHIFT,
- 			MAJOR(dev), MINOR(dev), ino, &len);
-+#ifdef __i386__
-+	if (tmm)
-+		mmput(tmm);
-+#endif
- 
- 	/*
- 	 * Print the dentry name for named mappings, and a

linux-2.6-tux.patch:
 arch/alpha/kernel/systbls.S      |    8 
 arch/i386/kernel/syscall_table.S |   10 
 arch/ia64/kernel/entry.S         |    8 
 arch/ia64/kernel/ia64_ksyms.c    |    5 
 arch/x86_64/ia32/ia32entry.S     |   10 
 fs/dcache.c                      |   36 
 fs/exec.c                        |    2 
 fs/fcntl.c                       |    4 
 fs/namei.c                       |   18 
 fs/namespace.c                   |    2 
 fs/open.c                        |    4 
 fs/pipe.c                        |    2 
 fs/read_write.c                  |    2 
 include/asm-alpha/fcntl.h        |    1 
 include/asm-generic/fcntl.h      |    4 
 include/asm-i386/unistd.h        |    5 
 include/asm-ia64/unistd.h        |    2 
 include/asm-sparc/fcntl.h        |    1 
 include/asm-sparc64/fcntl.h      |    1 
 include/asm-x86_64/unistd.h      |   10 
 include/linux/buffer_head.h      |    1 
 include/linux/dcache.h           |    8 
 include/linux/errno.h            |    3 
 include/linux/file.h             |    2 
 include/linux/fs.h               |    7 
 include/linux/kmod.h             |    2 
 include/linux/namei.h            |    2 
 include/linux/net.h              |    1 
 include/linux/sched.h            |    5 
 include/linux/skbuff.h           |    2 
 include/linux/socket.h           |    4 
 include/linux/sysctl.h           |   50 
 include/net/sock.h               |    8 
 include/net/tcp.h                |    3 
 include/net/tux.h                |  803 ++++++++++++++
 include/net/tux_u.h              |  163 ++
 kernel/exit.c                    |    9 
 kernel/fork.c                    |    2 
 kernel/kmod.c                    |   28 
 kernel/signal.c                  |    1 
 mm/filemap.c                     |   19 
 mm/truncate.c                    |    2 
 net/Kconfig                      |    1 
 net/Makefile                     |    1 
 net/core/sock.c                  |    5 
 net/ipv4/tcp.c                   |    1 
 net/ipv4/tcp_input.c             |    1 
 net/ipv4/tcp_output.c            |    3 
 net/socket.c                     |   54 
 net/tux/Kconfig                  |   25 
 net/tux/Makefile                 |   12 
 net/tux/abuf.c                   |  190 +++
 net/tux/accept.c                 |  863 +++++++++++++++
 net/tux/cachemiss.c              |  265 ++++
 net/tux/cgi.c                    |  171 +++
 net/tux/directory.c              |  302 +++++
 net/tux/extcgi.c                 |  329 +++++
 net/tux/gzip.c                   |   40 
 net/tux/input.c                  |  641 +++++++++++
 net/tux/logger.c                 |  841 ++++++++++++++
 net/tux/main.c                   | 1417 +++++++++++++++++++++++++
 net/tux/mod.c                    |  262 ++++
 net/tux/output.c                 |  352 ++++++
 net/tux/parser.h                 |  102 +
 net/tux/postpone.c               |   77 +
 net/tux/proc.c                   | 1149 ++++++++++++++++++++
 net/tux/proto_ftp.c              | 1555 +++++++++++++++++++++++++++
 net/tux/proto_http.c             | 2197 +++++++++++++++++++++++++++++++++++++++
 net/tux/redirect.c               |  172 +++
 net/tux/times.c                  |  392 ++++++
 net/tux/userspace.c              |   27 
 71 files changed, 12676 insertions(+), 31 deletions(-)

Index: linux-2.6-tux.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-tux.patch,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- linux-2.6-tux.patch	5 Sep 2006 22:17:19 -0000	1.27
+++ linux-2.6-tux.patch	17 Sep 2006 06:01:36 -0000	1.28
@@ -1,8 +1,7 @@
-Index: linux-tux.q/arch/alpha/kernel/systbls.S
-===================================================================
---- linux-tux.q.orig/arch/alpha/kernel/systbls.S
-+++ linux-tux.q/arch/alpha/kernel/systbls.S
-@@ -240,7 +240,15 @@ sys_call_table:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/arch/alpha/kernel/systbls.S linux-910/arch/alpha/kernel/systbls.S
+--- linux-905/arch/alpha/kernel/systbls.S
++++ linux-910/arch/alpha/kernel/systbls.S
+@@ -239,7 +239,15 @@ sys_call_table:
  	.quad alpha_ni_syscall
  	.quad alpha_ni_syscall			/* 220 */
  	.quad alpha_ni_syscall
@@ -18,10 +17,9 @@
  	.quad alpha_ni_syscall
  	.quad alpha_ni_syscall
  	.quad alpha_ni_syscall			/* 225 */
-Index: linux-tux.q/arch/i386/kernel/syscall_table.S
-===================================================================
---- linux-tux.q.orig/arch/i386/kernel/syscall_table.S
-+++ linux-tux.q/arch/i386/kernel/syscall_table.S
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/arch/i386/kernel/syscall_table.S linux-910/arch/i386/kernel/syscall_table.S
+--- linux-905/arch/i386/kernel/syscall_table.S
++++ linux-910/arch/i386/kernel/syscall_table.S
 @@ -221,7 +221,15 @@ ENTRY(sys_call_table)
  	.long sys_madvise
  	.long sys_getdents64	/* 220 */
@@ -39,11 +37,10 @@
  	.long sys_ni_syscall
  	.long sys_gettid
  	.long sys_readahead	/* 225 */
-Index: linux-tux.q/arch/ia64/kernel/entry.S
-===================================================================
---- linux-tux.q.orig/arch/ia64/kernel/entry.S
-+++ linux-tux.q/arch/ia64/kernel/entry.S
-@@ -1442,7 +1442,15 @@ sys_call_table:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/arch/ia64/kernel/entry.S linux-910/arch/ia64/kernel/entry.S
+--- linux-905/arch/ia64/kernel/entry.S
++++ linux-910/arch/ia64/kernel/entry.S
+@@ -1427,7 +1427,15 @@ sys_call_table:
  	data8 sys_syslog
  	data8 sys_setitimer
  	data8 sys_getitimer
@@ -59,11 +56,10 @@
  	data8 sys_ni_syscall					/* was: ia64_oldlstat */
  	data8 sys_ni_syscall					/* was: ia64_oldfstat */
  	data8 sys_vhangup
-Index: linux-tux.q/arch/ia64/kernel/ia64_ksyms.c
-===================================================================
---- linux-tux.q.orig/arch/ia64/kernel/ia64_ksyms.c
-+++ linux-tux.q/arch/ia64/kernel/ia64_ksyms.c
-@@ -44,6 +44,11 @@ EXPORT_SYMBOL(__strlen_user);
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/arch/ia64/kernel/ia64_ksyms.c linux-910/arch/ia64/kernel/ia64_ksyms.c
+--- linux-905/arch/ia64/kernel/ia64_ksyms.c
++++ linux-910/arch/ia64/kernel/ia64_ksyms.c
+@@ -43,6 +43,11 @@ EXPORT_SYMBOL(__strlen_user);
  EXPORT_SYMBOL(__strncpy_from_user);
  EXPORT_SYMBOL(__strnlen_user);
  
@@ -75,11 +71,10 @@
  /* from arch/ia64/lib */
  extern void __divsi3(void);
  extern void __udivsi3(void);
-Index: linux-tux.q/arch/x86_64/ia32/ia32entry.S
-===================================================================
---- linux-tux.q.orig/arch/x86_64/ia32/ia32entry.S
-+++ linux-tux.q/arch/x86_64/ia32/ia32entry.S
-@@ -599,7 +599,15 @@ ia32_sys_call_table:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/arch/x86_64/ia32/ia32entry.S linux-910/arch/x86_64/ia32/ia32entry.S
+--- linux-905/arch/x86_64/ia32/ia32entry.S
++++ linux-910/arch/x86_64/ia32/ia32entry.S
+@@ -617,7 +617,15 @@ ia32_sys_call_table:
  	.quad sys_madvise
  	.quad compat_sys_getdents64	/* 220 getdents64 */
  	.quad compat_sys_fcntl64	
@@ -96,11 +91,10 @@
  	.quad quiet_ni_syscall    	/* security */
  	.quad sys_gettid	
  	.quad sys_readahead	/* 225 */
-Index: linux-tux.q/fs/dcache.c
-===================================================================
---- linux-tux.q.orig/fs/dcache.c
-+++ linux-tux.q/fs/dcache.c
-@@ -86,6 +86,10 @@ static void d_free(struct dentry *dentry
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/dcache.c linux-910/fs/dcache.c
+--- linux-905/fs/dcache.c
++++ linux-910/fs/dcache.c
+@@ -84,6 +84,10 @@ static void d_free(struct dentry *dentry
  {
  	if (dentry->d_op && dentry->d_op->d_release)
  		dentry->d_op->d_release(dentry);
@@ -111,7 +105,7 @@
   	call_rcu(&dentry->d_u.d_rcu, d_callback);
  }
  
-@@ -742,6 +746,7 @@ struct dentry *d_alloc(struct dentry * p
+@@ -750,6 +754,7 @@ struct dentry *d_alloc(struct dentry * p
  	dentry->d_sb = NULL;
  	dentry->d_op = NULL;
  	dentry->d_fsdata = NULL;
@@ -119,7 +113,7 @@
  	dentry->d_mounted = 0;
  #ifdef CONFIG_PROFILING
  	dentry->d_cookie = NULL;
-@@ -1317,6 +1322,16 @@ already_unhashed:
+@@ -1358,6 +1363,16 @@ already_unhashed:
  	/* Unhash the target: dput() will then get rid of it */
  	__d_drop(target);
  
@@ -136,7 +130,7 @@
  	list_del(&dentry->d_u.d_child);
  	list_del(&target->d_u.d_child);
  
-@@ -1360,7 +1375,7 @@ already_unhashed:
+@@ -1402,7 +1417,7 @@ already_unhashed:
   *
   * "buflen" should be positive. Caller holds the dcache_lock.
   */
@@ -145,7 +139,7 @@
  			struct dentry *root, struct vfsmount *rootmnt,
  			char *buffer, int buflen)
  {
-@@ -1428,6 +1443,8 @@ Elong:
+@@ -1470,6 +1485,8 @@ Elong:
  	return ERR_PTR(-ENAMETOOLONG);
  }
  
@@ -154,7 +148,7 @@
  /* write full pathname into buffer and return start of pathname */
  char * d_path(struct dentry *dentry, struct vfsmount *vfsmnt,
  				char *buf, int buflen)
-@@ -1670,6 +1687,23 @@ static void __init dcache_init_early(voi
+@@ -1698,6 +1715,23 @@ static void __init dcache_init_early(voi
  		INIT_HLIST_HEAD(&dentry_hashtable[loop]);
  }
  
@@ -178,11 +172,10 @@
  static void __init dcache_init(unsigned long mempages)
  {
  	int loop;
-Index: linux-tux.q/fs/exec.c
-===================================================================
---- linux-tux.q.orig/fs/exec.c
-+++ linux-tux.q/fs/exec.c
-@@ -1446,6 +1446,8 @@ int do_coredump(long signr, int exit_cod
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/exec.c linux-910/fs/exec.c
+--- linux-905/fs/exec.c
++++ linux-910/fs/exec.c
+@@ -1466,6 +1466,8 @@ int do_coredump(long signr, int exit_cod
  	binfmt = current->binfmt;
  	if (!binfmt || !binfmt->core_dump)
  		goto fail;
@@ -191,11 +184,10 @@
  	down_write(&mm->mmap_sem);
  	if (!mm->dumpable) {
  		up_write(&mm->mmap_sem);
-Index: linux-tux.q/fs/fcntl.c
-===================================================================
---- linux-tux.q.orig/fs/fcntl.c
-+++ linux-tux.q/fs/fcntl.c
-@@ -112,7 +112,7 @@ out:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/fcntl.c linux-910/fs/fcntl.c
+--- linux-905/fs/fcntl.c
++++ linux-910/fs/fcntl.c
+@@ -111,7 +111,7 @@ out:
  	return error;
  }
  
@@ -204,7 +196,7 @@
  {
  	struct files_struct * files = current->files;
  	struct fdtable *fdt;
-@@ -135,6 +135,8 @@ static int dupfd(struct file *file, unsi
+@@ -134,6 +134,8 @@ static int dupfd(struct file *file, unsi
  	return fd;
  }
  
@@ -213,11 +205,10 @@
  asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd)
  {
  	int err = -EBADF;
-Index: linux-tux.q/fs/namei.c
-===================================================================
---- linux-tux.q.orig/fs/namei.c
-+++ linux-tux.q/fs/namei.c
-@@ -735,7 +735,7 @@ static __always_inline void follow_dotdo
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/namei.c linux-910/fs/namei.c
+--- linux-905/fs/namei.c
++++ linux-910/fs/namei.c
+@@ -745,7 +745,7 @@ static __always_inline void follow_dotdo
   *  It _is_ time-critical.
   */
  static int do_lookup(struct nameidata *nd, struct qstr *name,
@@ -226,7 +217,7 @@
  {
  	struct vfsmount *mnt = nd->mnt;
  	struct dentry *dentry = __d_lookup(nd->dentry, name);
-@@ -751,12 +751,16 @@ done:
+@@ -761,12 +761,16 @@ done:
  	return 0;
  
  need_lookup:
@@ -243,7 +234,7 @@
  	if (dentry->d_op->d_revalidate(dentry, nd))
  		goto done;
  	if (d_invalidate(dentry))
-@@ -780,9 +784,11 @@ static fastcall int __link_path_walk(con
+@@ -790,9 +794,11 @@ static fastcall int __link_path_walk(con
  {
  	struct path next;
  	struct inode *inode;
@@ -257,7 +248,7 @@
  	while (*name=='/')
  		name++;
  	if (!*name)
-@@ -851,7 +857,7 @@ static fastcall int __link_path_walk(con
+@@ -861,7 +867,7 @@ static fastcall int __link_path_walk(con
  				break;
  		}
  		/* This does the actual lookups.. */
@@ -266,7 +257,7 @@
  		if (err)
  			break;
  
-@@ -906,7 +912,7 @@ last_component:
+@@ -916,7 +922,7 @@ last_component:
  			if (err < 0)
  				break;
  		}
@@ -275,7 +266,7 @@
  		if (err)
  			break;
  		inode = next.dentry->d_inode;
-@@ -1406,6 +1412,8 @@ static inline int lookup_flags(unsigned 
+@@ -1418,6 +1424,8 @@ static inline int lookup_flags(unsigned 
  	
  	if (f & O_DIRECTORY)
  		retval |= LOOKUP_DIRECTORY;
@@ -284,11 +275,10 @@
  
  	return retval;
  }
-Index: linux-tux.q/fs/namespace.c
-===================================================================
---- linux-tux.q.orig/fs/namespace.c
-+++ linux-tux.q/fs/namespace.c
-@@ -1491,6 +1491,8 @@ void set_fs_root(struct fs_struct *fs, s
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/namespace.c linux-910/fs/namespace.c
+--- linux-905/fs/namespace.c
++++ linux-910/fs/namespace.c
+@@ -1609,6 +1609,8 @@ void set_fs_root(struct fs_struct *fs, s
  	}
  }
  
@@ -297,11 +287,10 @@
  /*
   * Replace the fs->{pwdmnt,pwd} with {mnt,dentry}. Put the old values.
   * It can block. Requires the big lock held.
-Index: linux-tux.q/fs/open.c
-===================================================================
---- linux-tux.q.orig/fs/open.c
-+++ linux-tux.q/fs/open.c
-@@ -555,6 +555,8 @@ out:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/open.c linux-910/fs/open.c
+--- linux-905/fs/open.c
++++ linux-910/fs/open.c
+@@ -562,6 +562,8 @@ out:
  	return error;
  }
  
@@ -310,7 +299,7 @@
  asmlinkage long sys_fchdir(unsigned int fd)
  {
  	struct file *file;
-@@ -611,6 +613,8 @@ out:
+@@ -618,6 +620,8 @@ out:
  	return error;
  }
  
@@ -319,11 +308,10 @@
  asmlinkage long sys_fchmod(unsigned int fd, mode_t mode)
  {
  	struct inode * inode;
-Index: linux-tux.q/fs/pipe.c
-===================================================================
---- linux-tux.q.orig/fs/pipe.c
-+++ linux-tux.q/fs/pipe.c
-@@ -798,6 +798,8 @@ no_files:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/pipe.c linux-910/fs/pipe.c
+--- linux-905/fs/pipe.c
++++ linux-910/fs/pipe.c
+@@ -973,6 +973,8 @@ no_files:
  	return error;	
  }
  
@@ -332,10 +320,9 @@
  /*
   * pipefs should _never_ be mounted by userland - too much of security hassle,
   * no real gain from having the whole whorehouse mounted. So we don't need
-Index: linux-tux.q/fs/read_write.c
-===================================================================
---- linux-tux.q.orig/fs/read_write.c
-+++ linux-tux.q/fs/read_write.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/fs/read_write.c linux-910/fs/read_write.c
+--- linux-905/fs/read_write.c
++++ linux-910/fs/read_write.c
 @@ -374,6 +374,8 @@ asmlinkage ssize_t sys_write(unsigned in
  	return ret;
  }
@@ -345,10 +332,9 @@
  asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf,
  			     size_t count, loff_t pos)
  {
-Index: linux-tux.q/include/asm-alpha/fcntl.h
-===================================================================
---- linux-tux.q.orig/include/asm-alpha/fcntl.h
-+++ linux-tux.q/include/asm-alpha/fcntl.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-alpha/fcntl.h linux-910/include/asm-alpha/fcntl.h
+--- linux-905/include/asm-alpha/fcntl.h
++++ linux-910/include/asm-alpha/fcntl.h
 @@ -14,6 +14,7 @@
  #define O_DIRECTORY	0100000	/* must be a directory */
  #define O_NOFOLLOW	0200000 /* don't follow links */
@@ -357,11 +343,10 @@
  #define O_DIRECT	02000000 /* direct disk access - should check with OSF/1 */
  #define O_NOATIME	04000000
  
-Index: linux-tux.q/include/asm-generic/fcntl.h
-===================================================================
---- linux-tux.q.orig/include/asm-generic/fcntl.h
-+++ linux-tux.q/include/asm-generic/fcntl.h
-@@ -49,6 +49,10 @@
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-generic/fcntl.h linux-910/include/asm-generic/fcntl.h
+--- linux-905/include/asm-generic/fcntl.h
++++ linux-910/include/asm-generic/fcntl.h
+@@ -48,6 +48,10 @@
  #ifndef O_NOATIME
  #define O_NOATIME	01000000
  #endif
@@ -372,19 +357,18 @@
  #ifndef O_NDELAY
  #define O_NDELAY	O_NONBLOCK
  #endif
-Index: linux-tux.q/include/asm-i386/unistd.h
-===================================================================
---- linux-tux.q.orig/include/asm-i386/unistd.h
-+++ linux-tux.q/include/asm-i386/unistd.h
-@@ -319,6 +319,7 @@
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-i386/unistd.h linux-910/include/asm-i386/unistd.h
+--- linux-905/include/asm-i386/unistd.h
++++ linux-910/include/asm-i386/unistd.h
+@@ -326,6 +326,7 @@
  
- #define NR_syscalls 311
+ #define NR_syscalls 318
  
 +#ifndef __KERNEL_SYSCALLS_NO_ERRNO__
  /*
   * user-visible error numbers are in the range -1 - -128: see
   * <asm-i386/errno.h>
-@@ -332,6 +333,10 @@ do { \
+@@ -339,6 +340,10 @@ do { \
  	return (type) (res); \
  } while (0)
  
@@ -395,10 +379,9 @@
  /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
  #define _syscall0(type,name) \
  type name(void) \
-Index: linux-tux.q/include/asm-ia64/unistd.h
-===================================================================
---- linux-tux.q.orig/include/asm-ia64/unistd.h
-+++ linux-tux.q/include/asm-ia64/unistd.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-ia64/unistd.h linux-910/include/asm-ia64/unistd.h
+--- linux-905/include/asm-ia64/unistd.h
++++ linux-910/include/asm-ia64/unistd.h
 @@ -109,7 +109,7 @@
  #define __NR_syslog			1117
  #define __NR_setitimer			1118
@@ -408,10 +391,9 @@
  /* 1121 was __NR_old_lstat */
  /* 1122 was __NR_old_fstat */
  #define __NR_vhangup			1123
-Index: linux-tux.q/include/asm-sparc/fcntl.h
-===================================================================
---- linux-tux.q.orig/include/asm-sparc/fcntl.h
-+++ linux-tux.q/include/asm-sparc/fcntl.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-sparc/fcntl.h linux-910/include/asm-sparc/fcntl.h
+--- linux-905/include/asm-sparc/fcntl.h
++++ linux-910/include/asm-sparc/fcntl.h
 @@ -14,6 +14,7 @@
  #define O_NDELAY	(0x0004 | O_NONBLOCK)
  #define O_NOCTTY	0x8000	/* not fcntl */
@@ -420,10 +402,9 @@
  #define O_DIRECT        0x100000 /* direct disk access hint */
  #define O_NOATIME	0x200000
  
-Index: linux-tux.q/include/asm-sparc64/fcntl.h
-===================================================================
---- linux-tux.q.orig/include/asm-sparc64/fcntl.h
-+++ linux-tux.q/include/asm-sparc64/fcntl.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-sparc64/fcntl.h linux-910/include/asm-sparc64/fcntl.h
+--- linux-905/include/asm-sparc64/fcntl.h
++++ linux-910/include/asm-sparc64/fcntl.h
 @@ -14,6 +14,7 @@
  #define O_NONBLOCK	0x4000
  #define O_NOCTTY	0x8000	/* not fcntl */
@@ -432,10 +413,9 @@
  #define O_DIRECT        0x100000 /* direct disk access hint */
  #define O_NOATIME	0x200000
  
-Index: linux-tux.q/include/asm-x86_64/unistd.h
-===================================================================
---- linux-tux.q.orig/include/asm-x86_64/unistd.h
-+++ linux-tux.q/include/asm-x86_64/unistd.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/asm-x86_64/unistd.h linux-910/include/asm-x86_64/unistd.h
+--- linux-905/include/asm-x86_64/unistd.h
++++ linux-910/include/asm-x86_64/unistd.h
 @@ -425,7 +425,15 @@ __SYSCALL(__NR_putpmsg, sys_ni_syscall)
  __SYSCALL(__NR_afs_syscall, sys_ni_syscall)
  
@@ -453,9 +433,10 @@
  
  #define __NR_security			185
  __SYSCALL(__NR_security, sys_ni_syscall)
---- linux-2.6.16.noarch/include/linux/buffer_head.h~	2006-03-27 13:32:25.000000000 -0500
-+++ linux-2.6.16.noarch/include/linux/buffer_head.h	2006-03-27 13:32:30.000000000 -0500
-@@ -204,6 +204,7 @@ int generic_cont_expand(struct inode *in
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/buffer_head.h linux-910/include/linux/buffer_head.h
+--- linux-905/include/linux/buffer_head.h
++++ linux-910/include/linux/buffer_head.h
+@@ -203,6 +203,7 @@ int generic_cont_expand(struct inode *in
  int generic_cont_expand_simple(struct inode *inode, loff_t size);
  int block_commit_write(struct page *page, unsigned from, unsigned to);
  void block_sync_page(struct page *);
@@ -463,10 +444,9 @@
  sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *);
  int generic_commit_write(struct file *, struct page *, unsigned, unsigned);
  int block_truncate_page(struct address_space *, loff_t, get_block_t *);
-Index: linux-tux.q/include/linux/dcache.h
-===================================================================
---- linux-tux.q.orig/include/linux/dcache.h
-+++ linux-tux.q/include/linux/dcache.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/dcache.h linux-910/include/linux/dcache.h
+--- linux-905/include/linux/dcache.h
++++ linux-910/include/linux/dcache.h
 @@ -107,6 +107,7 @@ struct dentry {
  	struct dentry_operations *d_op;
  	struct super_block *d_sb;	/* The root of the dentry tree */
@@ -475,15 +455,15 @@
  #ifdef CONFIG_PROFILING
  	struct dcookie_struct *d_cookie; /* cookie, if any */
  #endif
-@@ -217,6 +218,7 @@ extern void shrink_dcache_sb(struct supe
+@@ -230,6 +231,7 @@ extern struct dentry * d_splice_alias(st
+ extern void shrink_dcache_sb(struct super_block *);
  extern void shrink_dcache_parent(struct dentry *);
- extern void shrink_dcache_anon(struct hlist_head *);
  extern int d_invalidate(struct dentry *);
 +extern void flush_dentry_attributes(void);
  
  /* only used at mount-time */
  extern struct dentry * d_alloc_root(struct inode *);
-@@ -277,8 +279,12 @@ extern struct dentry * __d_lookup(struct
+@@ -291,8 +293,12 @@ extern struct dentry * d_hash_and_lookup
  /* validate "insecure" dentry pointer */
  extern int d_validate(struct dentry *, struct dentry *);
  
@@ -497,10 +477,9 @@
  /* Allocation counts.. */
  
  /**
-Index: linux-tux.q/include/linux/errno.h
-===================================================================
---- linux-tux.q.orig/include/linux/errno.h
-+++ linux-tux.q/include/linux/errno.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/errno.h linux-910/include/linux/errno.h
+--- linux-905/include/linux/errno.h
++++ linux-910/include/linux/errno.h
 @@ -24,6 +24,9 @@
  #define EIOCBQUEUED	529	/* iocb queued, will get completion event */
  #define EIOCBRETRY	530	/* iocb queued, will trigger a retry */
@@ -511,22 +490,20 @@
  #endif
  
  #endif
-Index: linux-tux.q/include/linux/file.h
-===================================================================
---- linux-tux.q.orig/include/linux/file.h
-+++ linux-tux.q/include/linux/file.h
-@@ -93,4 +93,6 @@ struct task_struct;
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/file.h linux-910/include/linux/file.h
+--- linux-905/include/linux/file.h
++++ linux-910/include/linux/file.h
+@@ -113,4 +113,6 @@ struct task_struct;
  struct files_struct *get_files_struct(struct task_struct *);
  void FASTCALL(put_files_struct(struct files_struct *fs));
  
 +extern int dupfd(struct file *file, unsigned int start);
 +
  #endif /* __LINUX_FILE_H */
-Index: linux-tux.q/include/linux/fs.h
-===================================================================
---- linux-tux.q.orig/include/linux/fs.h
-+++ linux-tux.q/include/linux/fs.h
-@@ -1610,7 +1610,7 @@ ssize_t generic_file_write_nolock(struct
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/fs.h linux-910/include/linux/fs.h
+--- linux-905/include/linux/fs.h
++++ linux-910/include/linux/fs.h
+@@ -1659,7 +1659,7 @@ ssize_t generic_file_write_nolock(struct
  extern ssize_t generic_file_sendfile(struct file *, loff_t *, size_t, read_actor_t, void *);
  extern void do_generic_mapping_read(struct address_space *mapping,
  				    struct file_ra_state *, struct file *,
@@ -535,7 +512,7 @@
  
  /* fs/splice.c */
  extern ssize_t generic_file_splice_read(struct file *, loff_t *,
-@@ -1607,14 +1607,15 @@ static inline int xip_truncate_page(stru
+@@ -1702,14 +1702,15 @@ static inline int xip_truncate_page(stru
  
  static inline void do_generic_file_read(struct file * filp, loff_t *ppos,
  					read_descriptor_t * desc,
@@ -553,11 +530,10 @@
  }
  
  ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
-Index: linux-tux.q/include/linux/kmod.h
-===================================================================
---- linux-tux.q.orig/include/linux/kmod.h
-+++ linux-tux.q/include/linux/kmod.h
-@@ -47,5 +47,7 @@ call_usermodehelper(char *path, char **a
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/kmod.h linux-910/include/linux/kmod.h
+--- linux-905/include/linux/kmod.h
++++ linux-910/include/linux/kmod.h
+@@ -46,5 +46,7 @@ call_usermodehelper(char *path, char **a
  }
  
  extern void usermodehelper_init(void);
@@ -565,10 +541,9 @@
 +				 struct key *ring);
  
  #endif /* __LINUX_KMOD_H__ */
-Index: linux-tux.q/include/linux/namei.h
-===================================================================
---- linux-tux.q.orig/include/linux/namei.h
-+++ linux-tux.q/include/linux/namei.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/namei.h linux-910/include/linux/namei.h
+--- linux-905/include/linux/namei.h
++++ linux-910/include/linux/namei.h
 @@ -48,6 +48,8 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LA
  #define LOOKUP_PARENT		16
  #define LOOKUP_NOALT		32
@@ -578,11 +553,10 @@
  /*
   * Intent data
   */
-Index: linux-tux.q/include/linux/net.h
-===================================================================
---- linux-tux.q.orig/include/linux/net.h
-+++ linux-tux.q/include/linux/net.h
-@@ -183,6 +183,7 @@ extern int	     sock_create_kern(int fam
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/net.h linux-910/include/linux/net.h
+--- linux-905/include/linux/net.h
++++ linux-910/include/linux/net.h
+@@ -189,6 +189,7 @@ extern int	     sock_create_kern(int fam
  				      struct socket **res);
  extern int	     sock_create_lite(int family, int type, int proto,
  				      struct socket **res); 
@@ -590,11 +564,10 @@
  extern void	     sock_release(struct socket *sock);
  extern int   	     sock_sendmsg(struct socket *sock, struct msghdr *msg,
  				  size_t len);
-Index: linux-tux.q/include/linux/sched.h
-===================================================================
---- linux-tux.q.orig/include/linux/sched.h
-+++ linux-tux.q/include/linux/sched.h
-@@ -815,6 +815,11 @@ struct task_struct {
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/sched.h linux-910/include/linux/sched.h
+--- linux-905/include/linux/sched.h
++++ linux-910/include/linux/sched.h
+@@ -895,6 +895,11 @@ struct task_struct {
  	int (*notifier)(void *priv);
  	void *notifier_data;
  	sigset_t *notifier_mask;
@@ -606,11 +579,10 @@
  	
  	void *security;
  	struct audit_context *audit_context;
-Index: linux-tux.q/include/linux/skbuff.h
-===================================================================
---- linux-tux.q.orig/include/linux/skbuff.h
-+++ linux-tux.q/include/linux/skbuff.h
-@@ -1328,6 +1328,8 @@ static inline unsigned int skb_checksum_
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/skbuff.h linux-910/include/linux/skbuff.h
+--- linux-905/include/linux/skbuff.h
++++ linux-910/include/linux/skbuff.h
+@@ -1422,6 +1422,8 @@ static inline unsigned int skb_checksum_
  		__skb_checksum_complete(skb);
  }
  
@@ -619,11 +591,10 @@
  #ifdef CONFIG_NETFILTER
  static inline void nf_conntrack_put(struct nf_conntrack *nfct)
  {
-Index: linux-tux.q/include/linux/socket.h
-===================================================================
---- linux-tux.q.orig/include/linux/socket.h
-+++ linux-tux.q/include/linux/socket.h
-@@ -301,6 +301,10 @@ extern int move_addr_to_user(void *kaddr
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/socket.h linux-910/include/linux/socket.h
+--- linux-905/include/linux/socket.h
++++ linux-910/include/linux/socket.h
+@@ -300,6 +300,10 @@ extern int move_addr_to_user(void *kaddr
  extern int move_addr_to_kernel(void __user *uaddr, int ulen, void *kaddr);
  extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
  
@@ -634,9 +605,10 @@
  #endif
  #endif /* not kernel and not glibc */
  #endif /* _LINUX_SOCKET_H */
---- linux-2.6.16.noarch/include/linux/sysctl.h~	2006-03-21 15:04:07.000000000 -0500
-+++ linux-2.6.16.noarch/include/linux/sysctl.h	2006-03-21 15:04:27.000000000 -0500
-@@ -215,6 +215,7 @@ enum
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/linux/sysctl.h linux-910/include/linux/sysctl.h
+--- linux-905/include/linux/sysctl.h
++++ linux-910/include/linux/sysctl.h
+@@ -220,6 +220,7 @@ enum
  	NET_LLC=18,
  	NET_NETFILTER=19,
  	NET_DCCP=20,
@@ -644,7 +616,7 @@
  };
  
  /* /proc/sys/kernel/random */
-@@ -771,6 +771,55 @@ enum {
+@@ -774,6 +775,55 @@ enum {
  	NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4,
  };
  
@@ -700,10 +672,9 @@
  /* CTL_FS names: */
  enum
  {
-Index: linux-tux.q/include/net/sock.h
-===================================================================
---- linux-tux.q.orig/include/net/sock.h
-+++ linux-tux.q/include/net/sock.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/net/sock.h linux-910/include/net/sock.h
+--- linux-905/include/net/sock.h
++++ linux-910/include/net/sock.h
 @@ -62,7 +62,7 @@
   */
  
@@ -713,7 +684,7 @@
  #ifdef SOCK_DEBUGGING
  #define SOCK_DEBUG(sk, msg...) do { if ((sk) && sock_flag((sk), SOCK_DBG)) \
  					printk(KERN_DEBUG msg); } while (0)
-@@ -161,7 +161,7 @@ struct sock_common {
+@@ -166,7 +166,7 @@ struct sock_common {
    *	@sk_timer: sock cleanup timer
    *	@sk_stamp: time stamp of last packet received
    *	@sk_socket: Identd and reporting IO signals
@@ -722,7 +693,7 @@
    *	@sk_sndmsg_page: cached page for sendmsg
    *	@sk_sndmsg_off: cached offset for sendmsg
    *	@sk_send_head: front of stuff to transmit
-@@ -171,6 +171,7 @@ struct sock_common {
+@@ -176,6 +176,7 @@ struct sock_common {
    *	@sk_data_ready: callback to indicate there is data to be processed
    *	@sk_write_space: callback to indicate there is bf sending space available
    *	@sk_error_report: callback to indicate errors (e.g. %MSG_ERRQUEUE)
@@ -730,7 +701,7 @@
    *	@sk_backlog_rcv: callback to process the backlog
    *	@sk_destruct: called at sock freeing time, i.e. when all refcnt == 0
   */
-@@ -250,6 +251,7 @@ struct sock {
+@@ -257,6 +258,7 @@ struct sock {
  	void			(*sk_error_report)(struct sock *sk);
    	int			(*sk_backlog_rcv)(struct sock *sk,
  						  struct sk_buff *skb);  
@@ -738,7 +709,7 @@
  	void                    (*sk_destruct)(struct sock *sk);
  };
  
-@@ -742,7 +744,7 @@ extern struct sock		*sk_alloc(int family
+@@ -760,7 +762,7 @@ extern struct sock		*sk_alloc(int family
  					  gfp_t priority,
  					  struct proto *prot, int zero_it);
  extern void			sk_free(struct sock *sk);
@@ -747,11 +718,10 @@
  					  const gfp_t priority);
  
  extern struct sk_buff		*sock_wmalloc(struct sock *sk,
-Index: linux-tux.q/include/net/tcp.h
-===================================================================
---- linux-tux.q.orig/include/net/tcp.h
-+++ linux-tux.q/include/net/tcp.h
-@@ -263,6 +263,8 @@ extern void			tcp_shutdown (struct sock 
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/net/tcp.h linux-910/include/net/tcp.h
+--- linux-905/include/net/tcp.h
++++ linux-910/include/net/tcp.h
+@@ -271,6 +271,8 @@ extern void			tcp_shutdown (struct sock 
  
  extern int			tcp_v4_rcv(struct sk_buff *skb);
  
@@ -760,7 +730,7 @@
  extern int			tcp_v4_remember_stamp(struct sock *sk);
  
  extern int		    	tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
-@@ -422,6 +424,7 @@ extern int  tcp_send_synack(struct sock 
+@@ -435,6 +437,7 @@ extern int  tcp_send_synack(struct sock 
  extern void tcp_push_one(struct sock *, unsigned int mss_now);
  extern void tcp_send_ack(struct sock *sk);
  extern void tcp_send_delayed_ack(struct sock *sk);
@@ -768,10 +738,9 @@
  
  /* tcp_input.c */
  extern void tcp_cwnd_application_limited(struct sock *sk);
-Index: linux-tux.q/include/net/tux.h
-===================================================================
---- /dev/null
-+++ linux-tux.q/include/net/tux.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/net/tux.h linux-910/include/net/tux.h
+--- linux-905/include/net/tux.h
++++ linux-910/include/net/tux.h
 @@ -0,0 +1,803 @@
 +#ifndef _NET_TUX_H
 +#define _NET_TUX_H
@@ -1576,10 +1545,9 @@
 +extern void free_tux_request_slabs(void);
 +
 +#endif
-Index: linux-tux.q/include/net/tux_u.h
-===================================================================
---- /dev/null
-+++ linux-tux.q/include/net/tux_u.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/include/net/tux_u.h linux-910/include/net/tux_u.h
+--- linux-905/include/net/tux_u.h
++++ linux-910/include/net/tux_u.h
 @@ -0,0 +1,163 @@
 +#ifndef _NET_TUX_U_H
 +#define _NET_TUX_U_H
@@ -1744,9 +1712,10 @@
 +} ftp_command_t;
 +
 +#endif
---- linux-2.6.17.noarch/kernel/exit.c~	2006-06-25 21:22:42.000000000 -0400
-+++ linux-2.6.17.noarch/kernel/exit.c	2006-06-25 21:24:03.000000000 -0400
-@@ -895,6 +895,15 @@ fastcall NORET_TYPE void do_exit(long co
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/kernel/exit.c linux-910/kernel/exit.c
+--- linux-905/kernel/exit.c
++++ linux-910/kernel/exit.c
+@@ -811,6 +811,15 @@ fastcall NORET_TYPE void do_exit(long co
   		hrtimer_cancel(&tsk->signal->real_timer);
  		exit_itimers(tsk->signal);
  	}
@@ -1762,9 +1731,10 @@
  	acct_collect(code, group_dead);
  	if (unlikely(tsk->robust_list))
  		exit_robust_list(tsk);
---- linux-2.6.17.noarch/kernel/fork.c~	2006-07-05 21:06:35.000000000 -0400
-+++ linux-2.6.17.noarch/kernel/fork.c	2006-07-05 21:06:46.000000000 -0400
-@@ -971,6 +971,8 @@ static struct task_struct *copy_process(
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/kernel/fork.c linux-910/kernel/fork.c
+--- linux-905/kernel/fork.c
++++ linux-910/kernel/fork.c
+@@ -974,6 +974,8 @@ static struct task_struct *copy_process(
  	if (!p)
  		goto fork_out;
  
@@ -1773,11 +1743,10 @@
  #ifdef CONFIG_TRACE_IRQFLAGS
  	DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
  	DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
-Index: linux-tux.q/kernel/kmod.c
-===================================================================
---- linux-tux.q.orig/kernel/kmod.c
-+++ linux-tux.q/kernel/kmod.c
-@@ -128,14 +128,14 @@ struct subprocess_info {
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/kernel/kmod.c linux-910/kernel/kmod.c
+--- linux-905/kernel/kmod.c
++++ linux-910/kernel/kmod.c
+@@ -127,14 +127,14 @@ struct subprocess_info {
  /*
   * This is the task which runs the usermode application
   */
@@ -1795,7 +1764,7 @@
  	flush_signals(current);
  	spin_lock_irq(&current->sighand->siglock);
  	old_session = __install_session_keyring(current, new_session);
-@@ -146,12 +146,28 @@ static int ____call_usermodehelper(void 
+@@ -145,12 +145,28 @@ static int ____call_usermodehelper(void 
  
  	key_put(old_session);
  
@@ -1827,11 +1796,10 @@
  
  	/* Exec failed? */
  	sub_info->retval = retval;
-Index: linux-tux.q/kernel/signal.c
-===================================================================
---- linux-tux.q.orig/kernel/signal.c
-+++ linux-tux.q/kernel/signal.c
-@@ -441,6 +441,7 @@ flush_signal_handlers(struct task_struct
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/kernel/signal.c linux-910/kernel/signal.c
+--- linux-905/kernel/signal.c
++++ linux-910/kernel/signal.c
+@@ -335,6 +335,7 @@ flush_signal_handlers(struct task_struct
  	}
  }
  
@@ -1839,11 +1807,10 @@
  
  /* Notify the system that a driver wants to block all signals for this
   * process, and wants to be notified if any signals at all were to be
-Index: linux-tux.q/mm/filemap.c
-===================================================================
---- linux-tux.q.orig/mm/filemap.c
-+++ linux-tux.q/mm/filemap.c
-@@ -735,7 +735,8 @@ void do_generic_mapping_read(struct addr
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/mm/filemap.c linux-910/mm/filemap.c
+--- linux-905/mm/filemap.c
++++ linux-910/mm/filemap.c
+@@ -874,7 +874,8 @@ void do_generic_mapping_read(struct addr
  			     struct file *filp,
  			     loff_t *ppos,
  			     read_descriptor_t *desc,
@@ -1853,7 +1820,7 @@
  {
  	struct inode *inode = mapping->host;
  	unsigned long index;
-@@ -785,11 +786,21 @@ void do_generic_mapping_read(struct addr
+@@ -924,11 +925,21 @@ void do_generic_mapping_read(struct addr
  find_page:
  		page = find_get_page(mapping, index);
  		if (unlikely(page == NULL)) {
@@ -1876,7 +1843,7 @@
  page_ok:
  
  		/* If users can be writing to this page using arbitrary
-@@ -1050,7 +1061,7 @@ __generic_file_aio_read(struct kiocb *io
+@@ -1195,7 +1206,7 @@ __generic_file_aio_read(struct kiocb *io
  			if (desc.count == 0)
  				continue;
  			desc.error = 0;
@@ -1885,7 +1852,7 @@
  			retval += desc.written;
  			if (desc.error) {
  				retval = retval ?: desc.error;
-@@ -1124,7 +1135,7 @@ ssize_t generic_file_sendfile(struct fil
+@@ -1266,7 +1277,7 @@ ssize_t generic_file_sendfile(struct fil
  	desc.arg.data = target;
  	desc.error = 0;
  
@@ -1894,11 +1861,10 @@
  	if (desc.written)
  		return desc.written;
  	return desc.error;
-Index: linux-tux.q/mm/truncate.c
-===================================================================
---- linux-tux.q.orig/mm/truncate.c
-+++ linux-tux.q/mm/truncate.c
-@@ -253,6 +253,8 @@ unlock:
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/mm/truncate.c linux-910/mm/truncate.c
+--- linux-905/mm/truncate.c
++++ linux-910/mm/truncate.c
+@@ -266,6 +266,8 @@ unlock:
  	return ret;
  }
  
@@ -1907,35 +1873,10 @@
  unsigned long invalidate_inode_pages(struct address_space *mapping)
  {
  	return invalidate_mapping_pages(mapping, 0, ~0UL);
-Index: linux-tux.q/net/Kconfig
-===================================================================
---- linux-tux.q.orig/net/Kconfig
-+++ linux-tux.q/net/Kconfig
-@@ -223,6 +223,7 @@ source "net/ax25/Kconfig"
- source "net/irda/Kconfig"
- source "net/bluetooth/Kconfig"
- source "net/ieee80211/Kconfig"
-+source "net/tux/Kconfig"
- 
- endif   # if NET
- endmenu # Networking
-Index: linux-tux.q/net/Makefile
-===================================================================
---- linux-tux.q.orig/net/Makefile
-+++ linux-tux.q/net/Makefile
-@@ -22,6 +22,7 @@ obj-$(CONFIG_UNIX)		+= unix/
- ifneq ($(CONFIG_IPV6),)
- obj-y				+= ipv6/
- endif
-+obj-$(CONFIG_TUX)		+= tux/
- obj-$(CONFIG_PACKET)		+= packet/
- obj-$(CONFIG_NET_KEY)		+= key/
- obj-$(CONFIG_NET_SCHED)		+= sched/
-Index: linux-tux.q/net/core/sock.c
-===================================================================
---- linux-tux.q.orig/net/core/sock.c
-+++ linux-tux.q/net/core/sock.c
-@@ -705,7 +705,7 @@ void sk_free(struct sock *sk)
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/core/sock.c linux-910/net/core/sock.c
+--- linux-905/net/core/sock.c
++++ linux-910/net/core/sock.c
+@@ -904,7 +904,7 @@ void sk_free(struct sock *sk)
  	module_put(owner);
  }
  
@@ -1944,7 +1885,7 @@
  {
  	struct sock *newsk = sk_alloc(sk->sk_family, priority, sk->sk_prot, 0);
  
-@@ -742,6 +742,9 @@ struct sock *sk_clone(const struct sock 
+@@ -946,6 +946,9 @@ struct sock *sk_clone(const struct sock 
  		if (filter != NULL)
  			sk_filter_charge(newsk, filter);
  
@@ -1954,20 +1895,18 @@
  		if (unlikely(xfrm_sk_clone_policy(newsk))) {
  			/* It is still raw copy of parent, so invalidate
  			 * destructor and make plain sk_free() */
-Index: linux-tux.q/net/ipv4/tcp.c
-===================================================================
---- linux-tux.q.orig/net/ipv4/tcp.c
-+++ linux-tux.q/net/ipv4/tcp.c
-@@ -2142,3 +2142,4 @@ EXPORT_SYMBOL(tcp_sendpage);
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/ipv4/tcp.c linux-910/net/ipv4/tcp.c
+--- linux-905/net/ipv4/tcp.c
++++ linux-910/net/ipv4/tcp.c
+@@ -2349,3 +2349,4 @@ EXPORT_SYMBOL(tcp_sendpage);
  EXPORT_SYMBOL(tcp_setsockopt);
  EXPORT_SYMBOL(tcp_shutdown);
  EXPORT_SYMBOL(tcp_statistics);
 +EXPORT_SYMBOL_GPL(tcp_cleanup_rbuf);
-Index: linux-tux.q/net/ipv4/tcp_input.c
-===================================================================
---- linux-tux.q.orig/net/ipv4/tcp_input.c
-+++ linux-tux.q/net/ipv4/tcp_input.c
-@@ -3474,6 +3474,7 @@ static int tcp_prune_queue(struct sock *
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/ipv4/tcp_input.c linux-910/net/ipv4/tcp_input.c
+--- linux-905/net/ipv4/tcp_input.c
++++ linux-910/net/ipv4/tcp_input.c
+@@ -3534,6 +3534,7 @@ static int tcp_prune_queue(struct sock *
  	return -1;
  }
  
@@ -1975,11 +1914,10 @@
  
  /* RFC2861, slow part. Adjust cwnd, after it was not full during one rto.
   * As additional protections, we do not touch cwnd in retransmission phases,
-Index: linux-tux.q/net/ipv4/tcp_output.c
-===================================================================
---- linux-tux.q.orig/net/ipv4/tcp_output.c
-+++ linux-tux.q/net/ipv4/tcp_output.c
-@@ -791,6 +791,8 @@ unsigned int tcp_current_mss(struct sock
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/ipv4/tcp_output.c linux-910/net/ipv4/tcp_output.c
+--- linux-905/net/ipv4/tcp_output.c
++++ linux-910/net/ipv4/tcp_output.c
+@@ -858,6 +858,8 @@ unsigned int tcp_current_mss(struct sock
  	return mss_now;
  }
  
@@ -1988,7 +1926,7 @@
  /* Congestion window validation. (RFC2861) */
  
  static void tcp_cwnd_validate(struct sock *sk, struct tcp_sock *tp)
-@@ -1160,6 +1162,7 @@ void __tcp_push_pending_frames(struct so
+@@ -1371,6 +1373,7 @@ void __tcp_push_pending_frames(struct so
  			tcp_check_probe_timer(sk, tp);
  	}
  }
@@ -1996,9 +1934,32 @@
  
  /* Send _single_ skb sitting at the send head. This function requires
   * true push pending frames to setup probe timer etc.
---- linux-2.6.16.noarch/net/socket.c~	2006-03-21 15:05:05.000000000 -0500
-+++ linux-2.6.16.noarch/net/socket.c	2006-03-21 15:05:17.000000000 -0500
-@@ -68,6 +68,7 @@
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/Kconfig linux-910/net/Kconfig
+--- linux-905/net/Kconfig
++++ linux-910/net/Kconfig
+@@ -245,6 +245,7 @@ source "net/ax25/Kconfig"
+ source "net/irda/Kconfig"
+ source "net/bluetooth/Kconfig"
+ source "net/ieee80211/Kconfig"
++source "net/tux/Kconfig"
+ 
+ config WIRELESS_EXT
+ 	bool
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/Makefile linux-910/net/Makefile
+--- linux-905/net/Makefile
++++ linux-910/net/Makefile
+@@ -22,6 +22,7 @@ obj-$(CONFIG_UNIX)		+= unix/
+ ifneq ($(CONFIG_IPV6),)
+ obj-y				+= ipv6/
+ endif
++obj-$(CONFIG_TUX)		+= tux/
+ obj-$(CONFIG_PACKET)		+= packet/
+ obj-$(CONFIG_NET_KEY)		+= key/
+ obj-$(CONFIG_NET_SCHED)		+= sched/
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/socket.c linux-910/net/socket.c
+--- linux-905/net/socket.c
++++ linux-910/net/socket.c
+@@ -67,6 +67,7 @@
  #include <linux/netdevice.h>
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
@@ -2015,7 +1976,7 @@
  	.owner =	THIS_MODULE,
  	.llseek =	no_llseek,
  	.aio_read =	sock_aio_read,
-@@ -465,7 +477,7 @@ struct socket *sockfd_lookup(int fd, int
+@@ -511,7 +512,7 @@ static struct socket *sockfd_lookup_ligh
   *	NULL is returned.
   */
  
@@ -2024,7 +1985,7 @@
  {
  	struct inode * inode;
  	struct socket * sock;
-@@ -485,6 +497,8 @@ static struct socket *sock_alloc(void)
+@@ -531,6 +532,8 @@ static struct socket *sock_alloc(void)
  	return sock;
  }
  
@@ -2033,7 +1994,7 @@
  /*
   *	In theory you can't get an open on this inode, but /proc provides
   *	a back door. Remember to keep it shut otherwise you'll let the
-@@ -1044,6 +1058,8 @@ static int sock_fasync(int fd, struct fi
+@@ -1090,6 +1093,8 @@ static int sock_fasync(int fd, struct fi
  	}
  
  out:
@@ -2042,7 +2003,7 @@
  	release_sock(sock->sk);
  	return 0;
  }
-@@ -2072,6 +2088,51 @@ static int __init sock_init(void)
+@@ -2130,6 +2135,51 @@ static int __init sock_init(void)
  
  core_initcall(sock_init);	/* early initcall */
  
@@ -2094,57 +2055,9 @@
  #ifdef CONFIG_PROC_FS
  void socket_seq_show(struct seq_file *seq)
  {
-Index: linux-tux.q/net/tux/Kconfig
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/Kconfig
-@@ -0,0 +1,25 @@
-+
-+config TUX
-+	tristate "TUX: Threaded linUX application protocol accelerator layer"
-+	default y if INET=y
-+	select ZLIB_DEFLATE
-+	help
-+	  This is the TUX content-accelerator/server
-+
-+menu "TUX options"
-+	depends on TUX
-+
-+config TUX_EXTCGI
-+	bool "External CGI module"
-+	default y
-+
-+config TUX_EXTENDED_LOG
-+	bool "extended TUX logging format"
-+	default n
-+
-+config TUX_DEBUG
-+	bool "debug TUX"
-+	default n
-+
-+endmenu
-+
-Index: linux-tux.q/net/tux/Makefile
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/Makefile
-@@ -0,0 +1,12 @@
-+#
-+# Makefile for TUX
-+#
-+
-+obj-$(CONFIG_TUX) += tux.o
-+
-+tux-y := accept.o input.o userspace.o cachemiss.o output.o \
-+	redirect.o postpone.o logger.o proto_http.o proto_ftp.o \
-+	proc.o main.o mod.o abuf.o times.o directory.o gzip.o
-+
-+tux-$(subst m,y,$(CONFIG_TUX_EXTCGI)) += cgi.o extcgi.o
-+
-Index: linux-tux.q/net/tux/abuf.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/abuf.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/abuf.c linux-910/net/tux/abuf.c
+--- linux-905/net/tux/abuf.c
++++ linux-910/net/tux/abuf.c
 @@ -0,0 +1,190 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -2336,10 +2249,9 @@
 +	send_abuf(req, size, flags);
 +	add_req_to_workqueue(req);
 +}
-Index: linux-tux.q/net/tux/accept.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/accept.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/accept.c linux-910/net/tux/accept.c
+--- linux-905/net/tux/accept.c
++++ linux-910/net/tux/accept.c
 @@ -0,0 +1,863 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -3204,10 +3116,9 @@
 +	goto out;
 +}
 +
-Index: linux-tux.q/net/tux/cachemiss.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/cachemiss.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/cachemiss.c linux-910/net/tux/cachemiss.c
+--- linux-905/net/tux/cachemiss.c
++++ linux-910/net/tux/cachemiss.c
 @@ -0,0 +1,265 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -3474,10 +3385,9 @@
 +	return 0;
 +}
 +
-Index: linux-tux.q/net/tux/cgi.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/cgi.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/cgi.c linux-910/net/tux/cgi.c
+--- linux-905/net/tux/cgi.c
++++ linux-910/net/tux/cgi.c
 @@ -0,0 +1,171 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -3650,10 +3560,9 @@
 +	}
 +	return pid;
 +}
-Index: linux-tux.q/net/tux/directory.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/directory.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/directory.c linux-910/net/tux/directory.c
+--- linux-905/net/tux/directory.c
++++ linux-910/net/tux/directory.c
 @@ -0,0 +1,302 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -3957,10 +3866,9 @@
 +	add_req_to_workqueue(req);
 +}
 +
-Index: linux-tux.q/net/tux/extcgi.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/extcgi.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/extcgi.c linux-910/net/tux/extcgi.c
+--- linux-905/net/tux/extcgi.c
++++ linux-910/net/tux/extcgi.c
 @@ -0,0 +1,329 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -4291,10 +4199,9 @@
 +
 +#define EXTCGI_INVALID EXTCGI_INVALID_HEADER EXTCGI_INVALID_BODY
 +
-Index: linux-tux.q/net/tux/gzip.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/gzip.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/gzip.c linux-910/net/tux/gzip.c
+--- linux-905/net/tux/gzip.c
++++ linux-910/net/tux/gzip.c
 @@ -0,0 +1,40 @@
 +/*	$Id$	*/
 +
@@ -4336,10 +4243,9 @@
 +	return left;
 +}
 +
-Index: linux-tux.q/net/tux/input.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/input.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/input.c linux-910/net/tux/input.c
+--- linux-905/net/tux/input.c
++++ linux-910/net/tux/input.c
 @@ -0,0 +1,641 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -4982,10 +4888,38 @@
 +	return count;
 +}
 +
-Index: linux-tux.q/net/tux/logger.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/logger.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/Kconfig linux-910/net/tux/Kconfig
+--- linux-905/net/tux/Kconfig
++++ linux-910/net/tux/Kconfig
+@@ -0,0 +1,25 @@
++
++config TUX
++	tristate "TUX: Threaded linUX application protocol accelerator layer"
++	default y if INET=y
++	select ZLIB_DEFLATE
++	help
++	  This is the TUX content-accelerator/server
++
++menu "TUX options"
++	depends on TUX
++
++config TUX_EXTCGI
++	bool "External CGI module"
++	default y
++
++config TUX_EXTENDED_LOG
++	bool "extended TUX logging format"
++	default n
++
++config TUX_DEBUG
++	bool "debug TUX"
++	default n
++
++endmenu
++
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/logger.c linux-910/net/tux/logger.c
+--- linux-905/net/tux/logger.c
++++ linux-910/net/tux/logger.c
 @@ -0,0 +1,841 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -5828,10 +5762,9 @@
 +
 +	Dprintk("logger thread stopped!\n");
 +}
-Index: linux-tux.q/net/tux/main.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/main.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/main.c linux-910/net/tux/main.c
+--- linux-905/net/tux/main.c
++++ linux-910/net/tux/main.c
 @@ -0,0 +1,1417 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -7250,10 +7183,25 @@
 +
 +MODULE_LICENSE("GPL");
 +
-Index: linux-tux.q/net/tux/mod.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/mod.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/Makefile linux-910/net/tux/Makefile
+--- linux-905/net/tux/Makefile
++++ linux-910/net/tux/Makefile
+@@ -0,0 +1,12 @@
++#
++# Makefile for TUX
++#
++
++obj-$(CONFIG_TUX) += tux.o
++
++tux-y := accept.o input.o userspace.o cachemiss.o output.o \
++	redirect.o postpone.o logger.o proto_http.o proto_ftp.o \
++	proc.o main.o mod.o abuf.o times.o directory.o gzip.o
++
++tux-$(subst m,y,$(CONFIG_TUX_EXTCGI)) += cgi.o extcgi.o
++
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/mod.c linux-910/net/tux/mod.c
+--- linux-905/net/tux/mod.c
++++ linux-910/net/tux/mod.c
 @@ -0,0 +1,262 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -7517,10 +7465,9 @@
 +	return ret;
 +}
 +
-Index: linux-tux.q/net/tux/output.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/output.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/output.c linux-910/net/tux/output.c
+--- linux-905/net/tux/output.c
++++ linux-910/net/tux/output.c
 @@ -0,0 +1,352 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -7874,10 +7821,9 @@
 +	return 0;
 +}
 +
-Index: linux-tux.q/net/tux/parser.h
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/parser.h
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/parser.h linux-910/net/tux/parser.h
+--- linux-905/net/tux/parser.h
++++ linux-910/net/tux/parser.h
 @@ -0,0 +1,102 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -7981,10 +7927,9 @@
 +		GOTO_REDIR;			\
 +} while (0)
 +
-Index: linux-tux.q/net/tux/postpone.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/postpone.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/postpone.c linux-910/net/tux/postpone.c
+--- linux-905/net/tux/postpone.c
++++ linux-910/net/tux/postpone.c
 @@ -0,0 +1,77 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -8063,10 +8008,9 @@
 +	return err;
 +}
 +
-Index: linux-tux.q/net/tux/proc.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/proc.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/proc.c linux-910/net/tux/proc.c
+--- linux-905/net/tux/proc.c
++++ linux-910/net/tux/proc.c
 @@ -0,0 +1,1149 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -9217,10 +9161,9 @@
 +}
 +
 +
-Index: linux-tux.q/net/tux/proto_ftp.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/proto_ftp.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/proto_ftp.c linux-910/net/tux/proto_ftp.c
+--- linux-905/net/tux/proto_ftp.c
++++ linux-910/net/tux/proto_ftp.c
 @@ -0,0 +1,1555 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -10777,10 +10720,9 @@
 +	.name = "ftp",
 +};
 +
-Index: linux-tux.q/net/tux/proto_http.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/proto_http.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/proto_http.c linux-910/net/tux/proto_http.c
+--- linux-905/net/tux/proto_http.c
++++ linux-910/net/tux/proto_http.c
 @@ -0,0 +1,2197 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -12979,10 +12921,9 @@
 +	.name = "http",
 +};
 +
-Index: linux-tux.q/net/tux/redirect.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/redirect.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/redirect.c linux-910/net/tux/redirect.c
+--- linux-905/net/tux/redirect.c
++++ linux-910/net/tux/redirect.c
 @@ -0,0 +1,172 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -13156,10 +13097,9 @@
 +{
 +	kmem_cache_destroy(tux_req.slab);
 +}
-Index: linux-tux.q/net/tux/times.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/times.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/times.c linux-910/net/tux/times.c
+--- linux-905/net/tux/times.c
++++ linux-910/net/tux/times.c
 @@ -0,0 +1,392 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache
@@ -13553,41 +13493,9 @@
 +
 +	return mktime(year, mon, mday, hour, min, sec);
 +}
-Index: linux-tux.q/net/tux/times.h
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/times.h
-@@ -0,0 +1,26 @@
-+static time_t TimeDays[10][13] = {
-+ { 852073200,	854751600,	857170800,	859849200,	862441200,	865119600,	867711600,	870390000,	873068400,	875660400,	878338800,	880930800,	883609200 } ,
-+ { 883609200,	886287600,	888706800,	891385200,	893977200,	896655600,	899247600,	901926000,	904604400,	907196400,	909874800,	912466800,	915145200 } ,
-+ { 915145200,	917823600,	920242800,	922921200,	925513200,	928191600,	930783600,	933462000,	936140400,	938732400,	941410800,	944002800,	946681200 } ,
-+ { 946681200,	949359600,	951865200,	954543600,	957135600,	959814000,	962406000,	965084400,	967762800,	970354800,	973033200,	975625200,	978303600 } ,
-+ { 978303600,	980982000,	983401200,	986079600,	988671600,	991350000,	993942000,	996620400,	999298800,	1001890800,	1004569200,	1007161200,	1009839600 } ,
-+ { 1009839600,	1012518000,	1014937200,	1017615600,	1020207600,	1022886000,	1025478000,	1028156400,	1030834800,	1033426800,	1036105200,	1038697200,	1041375600 } ,
-+ { 1041375600,	1044054000,	1046473200,	1049151600,	1051743600,	1054422000,	1057014000,	1059692400,	1062370800,	1064962800,	1067641200,	1070233200,	1072911600 } ,
-+ { 1072911600,	1075590000,	1078095600,	1080774000,	1083366000,	1086044400,	1088636400,	1091314800,	1093993200,	1096585200,	1099263600,	1101855600,	1104534000 } ,
-+ { 1104534000,	1107212400,	1109631600,	1112310000,	1114902000,	1117580400,	1120172400,	1122850800,	1125529200,	1128121200,	1130799600,	1133391600,	1136070000 } ,
-+ { 1136070000,	1138748400,	1141167600,	1143846000,	1146438000,	1149116400,	1151708400,	1154386800,	1157065200,	1159657200,	1162335600,	1164927600,	1167606000 }
-+};
-+static int WeekDays[10][13] = {
-+ { 3,	6,	6,	2,	4,	0,	2,	5,	1,	3,	6,	1,	4 } ,
-+ { 4,	0,	0,	3,	5,	1,	3,	6,	2,	4,	0,	2,	5 } ,
-+ { 5,	1,	1,	4,	6,	2,	4,	0,	3,	5,	1,	3,	6 } ,
-+ { 6,	2,	3,	6,	1,	4,	6,	2,	5,	0,	3,	5,	1 } ,
-+ { 1,	4,	4,	0,	2,	5,	0,	3,	6,	1,	4,	6,	2 } ,
-+ { 2,	5,	5,	1,	3,	6,	1,	4,	0,	2,	5,	0,	3 } ,
-+ { 3,	6,	6,	2,	4,	0,	2,	5,	1,	3,	6,	1,	4 } ,
-+ { 4,	0,	1,	4,	6,	2,	4,	0,	3,	5,	1,	3,	6 } ,
-+ { 6,	2,	2,	5,	0,	3,	5,	1,	4,	6,	2,	4,	0 } ,
-+ { 0,	3,	3,	6,	1,	4,	6,	2,	5,	0,	3,	5,	1 }
-+};
-+#define TUX_YEAROFFSET   1997
-+#define TUX_NUMYEARS     10
-Index: linux-tux.q/net/tux/userspace.c
-===================================================================
---- /dev/null
-+++ linux-tux.q/net/tux/userspace.c
+diff -urNp --exclude-from=/home/davej/.exclude linux-905/net/tux/userspace.c linux-910/net/tux/userspace.c
+--- linux-905/net/tux/userspace.c
++++ linux-910/net/tux/userspace.c
 @@ -0,0 +1,27 @@
 +/*
 + * TUX - Integrated Application Protocols Layer and Object Cache




More information about the fedora-cvs-commits mailing list