SOURCES (LINUX_2_6): patch-2.6.16-vs2.0.2-rc14.diff (NEW) - Vserve...

cieciwa cieciwa at pld-linux.org
Thu Mar 30 10:13:55 CEST 2006


Author: cieciwa                      Date: Thu Mar 30 08:13:54 2006 GMT
Module: SOURCES                       Tag: LINUX_2_6
---- Log message:
- Vserver patch for kernel 2.6.16 and 2.6.16.1

---- Files affected:
SOURCES:
   patch-2.6.16-vs2.0.2-rc14.diff (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/patch-2.6.16-vs2.0.2-rc14.diff
diff -u /dev/null SOURCES/patch-2.6.16-vs2.0.2-rc14.diff:1.1.2.1
--- /dev/null	Thu Mar 30 10:13:54 2006
+++ SOURCES/patch-2.6.16-vs2.0.2-rc14.diff	Thu Mar 30 10:13:49 2006
@@ -0,0 +1,21330 @@
+diff -NurpP --minimal linux-2.6.16/Makefile linux-2.6.16-vs2.0.2-rc14/Makefile
+--- linux-2.6.16/Makefile	2006-03-20 17:32:17 +0100
++++ linux-2.6.16-vs2.0.2-rc14/Makefile	2006-03-23 23:03:13 +0100
+@@ -1,7 +1,7 @@
+ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 16
+-EXTRAVERSION =
++EXTRAVERSION = -vs2.0.2-rc14
+ NAME=Sliding Snow Leopard
+ 
+ # *DOCUMENTATION*
+diff -NurpP --minimal linux-2.6.16/arch/alpha/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/alpha/Kconfig
+--- linux-2.6.16/arch/alpha/Kconfig	2006-03-20 17:32:17 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/alpha/Kconfig	2006-03-20 17:34:49 +0100
+@@ -619,6 +619,8 @@ source "arch/alpha/oprofile/Kconfig"
+ 
+ source "arch/alpha/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/alpha/kernel/entry.S linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/entry.S
+--- linux-2.6.16/arch/alpha/kernel/entry.S	2006-03-20 17:32:17 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/entry.S	2006-03-20 17:34:49 +0100
+@@ -874,24 +874,15 @@ sys_getxgid:
+ 	.globl	sys_getxpid
+ 	.ent	sys_getxpid
+ sys_getxpid:
++	lda	$sp, -16($sp)
++	stq	$26, 0($sp)
+ 	.prologue 0
+-	ldq	$2, TI_TASK($8)
+ 
+-	/* See linux/kernel/timer.c sys_getppid for discussion
+-	   about this loop.  */
+-	ldq	$3, TASK_GROUP_LEADER($2)
+-	ldq	$4, TASK_REAL_PARENT($3)
+-	ldl	$0, TASK_TGID($2)
+-1:	ldl	$1, TASK_TGID($4)
+-#ifdef CONFIG_SMP
+-	mov	$4, $5
+-	mb
+-	ldq	$3, TASK_GROUP_LEADER($2)
+-	ldq	$4, TASK_REAL_PARENT($3)
+-	cmpeq	$4, $5, $5
+-	beq	$5, 1b
+-#endif
+-	stq	$1, 80($sp)
++	lda	$16, 96($sp)
++	jsr	$26, do_getxpid
++	ldq	$26, 0($sp)
++
++	lda	$sp, 16($sp)
+ 	ret
+ .end sys_getxpid
+ 
+diff -NurpP --minimal linux-2.6.16/arch/alpha/kernel/ptrace.c linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/ptrace.c
+--- linux-2.6.16/arch/alpha/kernel/ptrace.c	2006-03-20 17:32:17 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/ptrace.c	2006-03-20 17:34:49 +0100
+@@ -15,6 +15,7 @@
+ #include <linux/slab.h>
+ #include <linux/security.h>
+ #include <linux/signal.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/uaccess.h>
+ #include <asm/pgtable.h>
+@@ -283,6 +284,11 @@ do_sys_ptrace(long request, long pid, lo
+ 		goto out_notsk;
+ 	}
+ 
++	if (!vx_check(vx_task_xid(child), VX_WATCH|VX_IDENT)) {
++		ret = -EPERM;
++		goto out;
++	}
++
+ 	if (request == PTRACE_ATTACH) {
+ 		ret = ptrace_attach(child);
+ 		goto out;
+diff -NurpP --minimal linux-2.6.16/arch/alpha/kernel/systbls.S linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/systbls.S
+--- linux-2.6.16/arch/alpha/kernel/systbls.S	2005-08-29 22:24:49 +0200
++++ linux-2.6.16-vs2.0.2-rc14/arch/alpha/kernel/systbls.S	2006-03-20 17:34:49 +0100
+@@ -447,7 +447,7 @@ sys_call_table:
+ 	.quad sys_stat64			/* 425 */
+ 	.quad sys_lstat64
+ 	.quad sys_fstat64
+-	.quad sys_ni_syscall			/* sys_vserver */
++	.quad sys_vserver			/* sys_vserver */
+ 	.quad sys_ni_syscall			/* sys_mbind */
+ 	.quad sys_ni_syscall			/* sys_get_mempolicy */
+ 	.quad sys_ni_syscall			/* sys_set_mempolicy */
+diff -NurpP --minimal linux-2.6.16/arch/alpha/mm/init.c linux-2.6.16-vs2.0.2-rc14/arch/alpha/mm/init.c
+--- linux-2.6.16/arch/alpha/mm/init.c	2006-03-20 17:32:18 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/alpha/mm/init.c	2006-03-20 17:34:49 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/init.h>
+ #include <linux/bootmem.h> /* max_low_pfn */
+ #include <linux/vmalloc.h>
++#include <linux/pagemap.h>
+ 
+ #include <asm/system.h>
+ #include <asm/uaccess.h>
+diff -NurpP --minimal linux-2.6.16/arch/arm/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/arm/Kconfig
+--- linux-2.6.16/arch/arm/Kconfig	2006-03-20 17:32:18 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/arm/Kconfig	2006-03-20 17:34:49 +0100
+@@ -827,6 +827,8 @@ source "arch/arm/oprofile/Kconfig"
+ 
+ source "arch/arm/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/arm/kernel/calls.S linux-2.6.16-vs2.0.2-rc14/arch/arm/kernel/calls.S
+--- linux-2.6.16/arch/arm/kernel/calls.S	2006-03-20 17:32:18 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/arm/kernel/calls.S	2006-03-20 17:34:49 +0100
+@@ -322,7 +322,7 @@
+ /* 310 */	CALL(sys_request_key)
+ 		CALL(sys_keyctl)
+ 		CALL(ABI(sys_semtimedop, sys_oabi_semtimedop))
+-/* vserver */	CALL(sys_ni_syscall)
++		CALL(sys_vserver)
+ 		CALL(sys_ioprio_set)
+ /* 315 */	CALL(sys_ioprio_get)
+ 		CALL(sys_inotify_init)
+diff -NurpP --minimal linux-2.6.16/arch/arm26/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/arm26/Kconfig
+--- linux-2.6.16/arch/arm26/Kconfig	2006-03-20 17:32:19 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/arm26/Kconfig	2006-03-20 17:34:49 +0100
+@@ -230,6 +230,8 @@ source "drivers/usb/Kconfig"
+ 
+ source "arch/arm26/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/arm26/kernel/calls.S linux-2.6.16-vs2.0.2-rc14/arch/arm26/kernel/calls.S
+--- linux-2.6.16/arch/arm26/kernel/calls.S	2005-03-02 12:38:19 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/arm26/kernel/calls.S	2006-03-20 17:34:49 +0100
+@@ -257,6 +257,11 @@ __syscall_start:
+ 		.long	sys_lremovexattr
+ 		.long	sys_fremovexattr
+ 		.long	sys_tkill
++
++		.rept	313 - (. - __syscall_start) / 4
++			.long	sys_ni_syscall
++		.endr
++		.long	sys_vserver	/* 313 */
+ __syscall_end:
+ 
+ 		.rept	NR_syscalls - (__syscall_end - __syscall_start) / 4
+diff -NurpP --minimal linux-2.6.16/arch/arm26/kernel/traps.c linux-2.6.16-vs2.0.2-rc14/arch/arm26/kernel/traps.c
+--- linux-2.6.16/arch/arm26/kernel/traps.c	2006-03-20 17:32:19 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/arm26/kernel/traps.c	2006-03-20 17:34:49 +0100
+@@ -186,8 +186,9 @@ NORET_TYPE void die(const char *str, str
+ 	printk("Internal error: %s: %x\n", str, err);
+ 	printk("CPU: %d\n", smp_processor_id());
+ 	show_regs(regs);
+-	printk("Process %s (pid: %d, stack limit = 0x%p)\n",
+-		current->comm, current->pid, end_of_stack(tsk));
++	printk("Process %s (pid: %d[#%u], stack limit = 0x%p)\n",
++		current->comm, current->pid,
++		current->xid, end_of_stack(tsk));
+ 
+ 	if (!user_mode(regs) || in_interrupt()) {
+ 		__dump_stack(tsk, (unsigned long)(regs + 1));
+diff -NurpP --minimal linux-2.6.16/arch/cris/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/cris/Kconfig
+--- linux-2.6.16/arch/cris/Kconfig	2006-03-20 17:32:19 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/cris/Kconfig	2006-03-20 17:34:49 +0100
+@@ -173,6 +173,8 @@ source "drivers/usb/Kconfig"
+ 
+ source "arch/cris/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/frv/mm/mmu-context.c linux-2.6.16-vs2.0.2-rc14/arch/frv/mm/mmu-context.c
+--- linux-2.6.16/arch/frv/mm/mmu-context.c	2005-03-02 12:38:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/frv/mm/mmu-context.c	2006-03-20 17:34:49 +0100
+@@ -11,6 +11,7 @@
+ 
+ #include <linux/sched.h>
+ #include <linux/mm.h>
++#include <linux/vs_cvirt.h>
+ #include <asm/tlbflush.h>
+ 
+ #define NR_CXN	4096
+diff -NurpP --minimal linux-2.6.16/arch/h8300/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/h8300/Kconfig
+--- linux-2.6.16/arch/h8300/Kconfig	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/h8300/Kconfig	2006-03-20 17:34:49 +0100
+@@ -191,6 +191,8 @@ source "fs/Kconfig"
+ 
+ source "arch/h8300/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/i386/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/i386/Kconfig
+--- linux-2.6.16/arch/i386/Kconfig	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/Kconfig	2006-03-20 17:34:49 +0100
+@@ -466,23 +466,43 @@ choice
+ 	  will also likely make your kernel incompatible with binary-only
+ 	  kernel modules.
+ 
+-	  If you are not absolutely sure what you are doing, leave this
+-	  option alone!
+-
+ 	config VMSPLIT_3G
+-		bool "3G/1G user/kernel split"
+-	config VMSPLIT_3G_OPT
+-		bool "3G/1G user/kernel split (for full 1G low memory)"
++		bool "3G/1G user/kernel split (Default)"
++		help
++		  This is the default split of 3GB userspace to 1GB kernel
++		  space, which will result in about 860MB of lowmem.
++
++	config VMSPLIT_25G
++		bool "2.5G/1.5G user/kernel split"
++		help
++		  This split provides 2.5GB userspace and 1.5GB kernel
++		  space, which will result in about 1370MB of lowmem.
++
+ 	config VMSPLIT_2G
+ 		bool "2G/2G user/kernel split"
++		help
++		  This split provides 2GB userspace and 2GB kernel
++		  space, which will result in about 1880MB of lowmem.
++
++	config VMSPLIT_15G
++		bool "1.5G/2.5G user/kernel split"
++		help
++		  This split provides 1.5GB userspace and 2.5GB kernel
++		  space, which will result in about 2390MB of lowmem.
++
+ 	config VMSPLIT_1G
+ 		bool "1G/3G user/kernel split"
++		help
++		  This split provides 1GB userspace and 3GB kernel
++		  space, which will result in about 2900MB of lowmem.
++
+ endchoice
+ 
+ config PAGE_OFFSET
+ 	hex
+-	default 0xB0000000 if VMSPLIT_3G_OPT
+-	default 0x78000000 if VMSPLIT_2G
++	default 0xA0000000 if VMSPLIT_25G
++	default 0x80000000 if VMSPLIT_2G
++	default 0x60000000 if VMSPLIT_15G
+ 	default 0x40000000 if VMSPLIT_1G
+ 	default 0xC0000000
+ 
+@@ -1071,6 +1091,8 @@ endmenu
+ 
+ source "arch/i386/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/i386/boot/compressed/misc.c linux-2.6.16-vs2.0.2-rc14/arch/i386/boot/compressed/misc.c
+--- linux-2.6.16/arch/i386/boot/compressed/misc.c	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/boot/compressed/misc.c	2006-03-20 17:34:49 +0100
+@@ -309,7 +309,7 @@ static void setup_normal_output_buffer(v
+ #else
+ 	if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory");
+ #endif
+-	output_data = (char *)__PHYSICAL_START; /* Normally Points to 1M */
++	output_data = (char *)PHYSICAL_START; /* Normally Points to 1M */
+ 	free_mem_end_ptr = (long)real_mode;
+ }
+ 
+@@ -334,8 +334,8 @@ static void setup_output_buffer_if_we_ru
+ 	low_buffer_size = low_buffer_end - LOW_BUFFER_START;
+ 	high_loaded = 1;
+ 	free_mem_end_ptr = (long)high_buffer_start;
+-	if ( (__PHYSICAL_START + low_buffer_size) > ((ulg)high_buffer_start)) {
+-		high_buffer_start = (uch *)(__PHYSICAL_START + low_buffer_size);
++	if ((PHYSICAL_START + low_buffer_size) > ((ulg)high_buffer_start)) {
++		high_buffer_start = (uch *)(PHYSICAL_START + low_buffer_size);
+ 		mv->hcount = 0; /* say: we need not to move high_buffer */
+ 	}
+ 	else mv->hcount = -1;
+diff -NurpP --minimal linux-2.6.16/arch/i386/kernel/setup.c linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/setup.c
+--- linux-2.6.16/arch/i386/kernel/setup.c	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/setup.c	2006-03-20 17:34:49 +0100
+@@ -1192,8 +1192,8 @@ void __init setup_bootmem_allocator(void
+ 	 * the (very unlikely) case of us accidentally initializing the
+ 	 * bootmem allocator with an invalid RAM area.
+ 	 */
+-	reserve_bootmem(__PHYSICAL_START, (PFN_PHYS(min_low_pfn) +
+-			 bootmap_size + PAGE_SIZE-1) - (__PHYSICAL_START));
++	reserve_bootmem(PHYSICAL_START, (PFN_PHYS(min_low_pfn) +
++			 bootmap_size + PAGE_SIZE-1) - (PHYSICAL_START));
+ 
+ 	/*
+ 	 * reserve physical page 0 - it's a special BIOS page on many boxes,
+diff -NurpP --minimal linux-2.6.16/arch/i386/kernel/sys_i386.c linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/sys_i386.c
+--- linux-2.6.16/arch/i386/kernel/sys_i386.c	2004-08-14 12:56:23 +0200
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/sys_i386.c	2006-03-20 17:34:49 +0100
+@@ -19,6 +19,7 @@
+ #include <linux/mman.h>
+ #include <linux/file.h>
+ #include <linux/utsname.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/uaccess.h>
+ #include <asm/ipc.h>
+@@ -217,7 +218,7 @@ asmlinkage int sys_uname(struct old_utsn
+ 	if (!name)
+ 		return -EFAULT;
+ 	down_read(&uts_sem);
+-	err=copy_to_user(name, &system_utsname, sizeof (*name));
++	err=copy_to_user(name, vx_new_utsname(), sizeof (*name));
+ 	up_read(&uts_sem);
+ 	return err?-EFAULT:0;
+ }
+@@ -225,6 +226,7 @@ asmlinkage int sys_uname(struct old_utsn
+ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
+ {
+ 	int error;
++	struct new_utsname *ptr;
+ 
+ 	if (!name)
+ 		return -EFAULT;
+@@ -233,15 +235,16 @@ asmlinkage int sys_olduname(struct oldol
+   
+   	down_read(&uts_sem);
+ 	
+-	error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
++	ptr = vx_new_utsname();
++	error = __copy_to_user(&name->sysname,ptr->sysname,__OLD_UTS_LEN);
+ 	error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
+-	error |= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
++	error |= __copy_to_user(&name->nodename,ptr->nodename,__OLD_UTS_LEN);
+ 	error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
+-	error |= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
++	error |= __copy_to_user(&name->release,ptr->release,__OLD_UTS_LEN);
+ 	error |= __put_user(0,name->release+__OLD_UTS_LEN);
+-	error |= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
++	error |= __copy_to_user(&name->version,ptr->version,__OLD_UTS_LEN);
+ 	error |= __put_user(0,name->version+__OLD_UTS_LEN);
+-	error |= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
++	error |= __copy_to_user(&name->machine,ptr->machine,__OLD_UTS_LEN);
+ 	error |= __put_user(0,name->machine+__OLD_UTS_LEN);
+ 	
+ 	up_read(&uts_sem);
+diff -NurpP --minimal linux-2.6.16/arch/i386/kernel/syscall_table.S linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/syscall_table.S
+--- linux-2.6.16/arch/i386/kernel/syscall_table.S	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/syscall_table.S	2006-03-20 17:34:49 +0100
+@@ -272,7 +272,7 @@ ENTRY(sys_call_table)
+ 	.long sys_tgkill	/* 270 */
+ 	.long sys_utimes
+  	.long sys_fadvise64_64
+-	.long sys_ni_syscall	/* sys_vserver */
++	.long sys_vserver
+ 	.long sys_mbind
+ 	.long sys_get_mempolicy
+ 	.long sys_set_mempolicy
+diff -NurpP --minimal linux-2.6.16/arch/i386/kernel/traps.c linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/traps.c
+--- linux-2.6.16/arch/i386/kernel/traps.c	2006-03-20 17:32:20 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/i386/kernel/traps.c	2006-03-20 17:34:49 +0100
+@@ -53,6 +53,7 @@
+ #include <asm/kdebug.h>
+ 
+ #include <linux/module.h>
++#include <linux/vserver/debug.h>
+ 
+ #include "mach_traps.h"
+ 
+@@ -252,8 +253,9 @@ void show_registers(struct pt_regs *regs
+ 		regs->esi, regs->edi, regs->ebp, esp);
+ 	printk(KERN_EMERG "ds: %04x   es: %04x   ss: %04x\n",
+ 		regs->xds & 0xffff, regs->xes & 0xffff, ss);
+-	printk(KERN_EMERG "Process %s (pid: %d, threadinfo=%p task=%p)",
+-		current->comm, current->pid, current_thread_info(), current);
++	printk(KERN_EMERG "Process %s (pid: %d[#%u], threadinfo=%p task=%p)",
++		current->comm, current->pid, current->xid,
++		current_thread_info(), current);
+ 	/*
+ 	 * When in-kernel, we also print out the stack and code at the
+ 	 * time of the fault..
+@@ -333,6 +335,8 @@ void die(const char * str, struct pt_reg
+ 	static int die_counter;
+ 	unsigned long flags;
+ 
++	vxh_throw_oops();
++
+ 	if (die.lock_owner != raw_smp_processor_id()) {
+ 		console_verbose();
+ 		spin_lock_irqsave(&die.lock, flags);
+@@ -365,8 +369,9 @@ void die(const char * str, struct pt_reg
+ #endif
+ 		if (nl)
+ 			printk("\n");
+-	notify_die(DIE_OOPS, (char *)str, regs, err, 255, SIGSEGV);
++		notify_die(DIE_OOPS, (char *)str, regs, err, 255, SIGSEGV);
+ 		show_registers(regs);
++		vxh_dump_history();
+   	} else
+ 		printk(KERN_EMERG "Recursive die() failure, output suppressed\n");
+ 
+diff -NurpP --minimal linux-2.6.16/arch/ia64/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/ia64/Kconfig
+--- linux-2.6.16/arch/ia64/Kconfig	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/Kconfig	2006-03-20 17:34:49 +0100
+@@ -464,6 +464,8 @@ endmenu
+ 
+ source "arch/ia64/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/ia64/ia32/binfmt_elf32.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/ia32/binfmt_elf32.c
+--- linux-2.6.16/arch/ia64/ia32/binfmt_elf32.c	2006-01-03 17:29:09 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/ia32/binfmt_elf32.c	2006-03-20 17:34:49 +0100
+@@ -236,7 +236,8 @@ ia32_setup_arg_pages (struct linux_binpr
+ 			kmem_cache_free(vm_area_cachep, mpnt);
+ 			return ret;
+ 		}
+-		current->mm->stack_vm = current->mm->total_vm = vma_pages(mpnt);
++		vx_vmpages_sub(current->mm, current->mm->total_vm - vma_pages(mpnt));
++		current->mm->stack_vm = current->mm->total_vm;
+ 	}
+ 
+ 	for (i = 0 ; i < MAX_ARG_PAGES ; i++) {
+diff -NurpP --minimal linux-2.6.16/arch/ia64/ia32/ia32_entry.S linux-2.6.16-vs2.0.2-rc14/arch/ia64/ia32/ia32_entry.S
+--- linux-2.6.16/arch/ia64/ia32/ia32_entry.S	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/ia32/ia32_entry.S	2006-03-20 17:34:49 +0100
+@@ -483,7 +483,7 @@ ia32_syscall_table:
+  	data8 sys_tgkill	/* 270 */
+  	data8 compat_sys_utimes
+  	data8 sys32_fadvise64_64
+- 	data8 sys_ni_syscall
++	data8 sys32_vserver
+   	data8 sys_ni_syscall
+  	data8 sys_ni_syscall	/* 275 */
+   	data8 sys_ni_syscall
+diff -NurpP --minimal linux-2.6.16/arch/ia64/kernel/entry.S linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/entry.S
+--- linux-2.6.16/arch/ia64/kernel/entry.S	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/entry.S	2006-03-20 17:34:49 +0100
+@@ -1591,7 +1591,7 @@ sys_call_table:
+ 	data8 sys_mq_notify
+ 	data8 sys_mq_getsetattr
+ 	data8 sys_ni_syscall			// reserved for kexec_load
+-	data8 sys_ni_syscall			// reserved for vserver
++	data8 sys_vserver
+ 	data8 sys_waitid			// 1270
+ 	data8 sys_add_key
+ 	data8 sys_request_key
+diff -NurpP --minimal linux-2.6.16/arch/ia64/kernel/perfmon.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/perfmon.c
+--- linux-2.6.16/arch/ia64/kernel/perfmon.c	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/perfmon.c	2006-03-20 17:34:49 +0100
+@@ -41,6 +41,8 @@
+ #include <linux/capability.h>
+ #include <linux/rcupdate.h>
+ #include <linux/completion.h>
++#include <linux/vs_memory.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/errno.h>
+ #include <asm/intrinsics.h>
+@@ -2355,7 +2357,7 @@ pfm_smpl_buffer_alloc(struct task_struct
+ 	 */
+ 	insert_vm_struct(mm, vma);
+ 
+-	mm->total_vm  += size >> PAGE_SHIFT;
++	vx_vmpages_add(mm, size >> PAGE_SHIFT);
+ 	vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file,
+ 							vma_pages(vma));
+ 	up_write(&task->mm->mmap_sem);
+diff -NurpP --minimal linux-2.6.16/arch/ia64/kernel/ptrace.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/ptrace.c
+--- linux-2.6.16/arch/ia64/kernel/ptrace.c	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/ptrace.c	2006-03-20 17:34:49 +0100
+@@ -18,6 +18,7 @@
+ #include <linux/security.h>
+ #include <linux/audit.h>
+ #include <linux/signal.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/pgtable.h>
+ #include <asm/processor.h>
+@@ -1443,6 +1444,9 @@ sys_ptrace (long request, pid_t pid, uns
+ 	read_unlock(&tasklist_lock);
+ 	if (!child)
+ 		goto out;
++	if (!vx_check(vx_task_xid(child), VX_WATCH|VX_IDENT))
++		goto out_tsk;
++
+ 	ret = -EPERM;
+ 	if (pid == 1)		/* no messing around with init! */
+ 		goto out_tsk;
+diff -NurpP --minimal linux-2.6.16/arch/ia64/kernel/signal.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/signal.c
+--- linux-2.6.16/arch/ia64/kernel/signal.c	2006-03-20 17:32:21 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/kernel/signal.c	2006-03-20 17:34:49 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/binfmts.h>
+ #include <linux/unistd.h>
+ #include <linux/wait.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/ia32.h>
+ #include <asm/intrinsics.h>
+diff -NurpP --minimal linux-2.6.16/arch/ia64/mm/fault.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/mm/fault.c
+--- linux-2.6.16/arch/ia64/mm/fault.c	2006-01-03 17:29:09 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/mm/fault.c	2006-03-20 17:34:49 +0100
+@@ -10,6 +10,7 @@
+ #include <linux/smp_lock.h>
+ #include <linux/interrupt.h>
+ #include <linux/kprobes.h>
++#include <linux/vs_memory.h>
+ 
+ #include <asm/pgtable.h>
+ #include <asm/processor.h>
+diff -NurpP --minimal linux-2.6.16/arch/ia64/sn/kernel/xpc_main.c linux-2.6.16-vs2.0.2-rc14/arch/ia64/sn/kernel/xpc_main.c
+--- linux-2.6.16/arch/ia64/sn/kernel/xpc_main.c	2006-03-20 17:32:22 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/ia64/sn/kernel/xpc_main.c	2006-03-20 17:34:49 +0100
+@@ -109,6 +109,7 @@ static ctl_table xpc_sys_xpc_hb_dir[] = 
+ 		0644,
+ 		NULL,
+ 		&proc_dointvec_minmax,
++		NULL,
+ 		&sysctl_intvec,
+ 		NULL,
+ 		&xpc_hb_min_interval,
+@@ -122,6 +123,7 @@ static ctl_table xpc_sys_xpc_hb_dir[] = 
+ 		0644,
+ 		NULL,
+ 		&proc_dointvec_minmax,
++		NULL,
+ 		&sysctl_intvec,
+ 		NULL,
+ 		&xpc_hb_check_min_interval,
+@@ -146,6 +148,7 @@ static ctl_table xpc_sys_xpc_dir[] = {
+ 		0644,
+ 		NULL,
+ 		&proc_dointvec_minmax,
++		NULL,
+ 		&sysctl_intvec,
+ 		NULL,
+ 		&xpc_disengage_request_min_timelimit,
+diff -NurpP --minimal linux-2.6.16/arch/m32r/kernel/ptrace.c linux-2.6.16-vs2.0.2-rc14/arch/m32r/kernel/ptrace.c
+--- linux-2.6.16/arch/m32r/kernel/ptrace.c	2006-03-20 17:32:22 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/m32r/kernel/ptrace.c	2006-03-20 17:34:49 +0100
+@@ -25,6 +25,7 @@
+ #include <linux/user.h>
+ #include <linux/string.h>
+ #include <linux/signal.h>
++#include <linux/vs_cvirt.h>
+ 
+ #include <asm/cacheflush.h>
+ #include <asm/io.h>
+diff -NurpP --minimal linux-2.6.16/arch/m68k/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/m68k/Kconfig
+--- linux-2.6.16/arch/m68k/Kconfig	2006-03-20 17:32:22 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/m68k/Kconfig	2006-03-20 17:34:49 +0100
+@@ -650,6 +650,8 @@ source "fs/Kconfig"
+ 
+ source "arch/m68k/Kconfig.debug"
+ 
++source "kernel/vserver/Kconfig"
++
+ source "security/Kconfig"
+ 
+ source "crypto/Kconfig"
+diff -NurpP --minimal linux-2.6.16/arch/m68k/kernel/ptrace.c linux-2.6.16-vs2.0.2-rc14/arch/m68k/kernel/ptrace.c
+--- linux-2.6.16/arch/m68k/kernel/ptrace.c	2006-01-03 17:29:10 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/m68k/kernel/ptrace.c	2006-03-20 17:34:49 +0100
+@@ -280,6 +280,8 @@ long arch_ptrace(struct task_struct *chi
+ 		ret = ptrace_request(child, request, addr, data);
+ 		break;
+ 	}
++	if (!vx_check(vx_task_xid(child), VX_WATCH|VX_IDENT))
++		goto out_tsk;
+ 
+ 	return ret;
+ out_eio:
+diff -NurpP --minimal linux-2.6.16/arch/m68knommu/Kconfig linux-2.6.16-vs2.0.2-rc14/arch/m68knommu/Kconfig
+--- linux-2.6.16/arch/m68knommu/Kconfig	2006-03-20 17:32:22 +0100
++++ linux-2.6.16-vs2.0.2-rc14/arch/m68knommu/Kconfig	2006-03-20 17:34:49 +0100
+@@ -646,6 +646,8 @@ source "fs/Kconfig"
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list