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 = ¤t->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(¤t->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