102 lines
3.8 KiB
Diff
102 lines
3.8 KiB
Diff
diff -ur source-amd64-xen/arch/i386/kernel/irq-xen.c source-amd64-xen-vserver-patch/arch/i386/kernel/irq-xen.c
|
|
--- source-amd64-xen/arch/i386/kernel/irq-xen.c 2006-12-15 18:44:42.000000000 +0100
|
|
+++ source-amd64-xen-vserver-patch/arch/i386/kernel/irq-xen.c 2006-12-15 18:45:43.000000000 +0100
|
|
@@ -81,7 +81,6 @@
|
|
}
|
|
}
|
|
#endif
|
|
-
|
|
#ifdef CONFIG_4KSTACKS
|
|
|
|
curctx = (union irq_ctx *) current_thread_info();
|
|
diff -ur source-amd64-xen/arch/i386/kernel/traps-xen.c source-amd64-xen-vserver-patch/arch/i386/kernel/traps-xen.c
|
|
--- source-amd64-xen/arch/i386/kernel/traps-xen.c 2006-12-15 18:44:42.000000000 +0100
|
|
+++ source-amd64-xen-vserver-patch/arch/i386/kernel/traps-xen.c 2006-12-15 18:45:43.000000000 +0100
|
|
@@ -53,6 +53,7 @@
|
|
#include <asm/kdebug.h>
|
|
|
|
#include <linux/module.h>
|
|
+#include <linux/vserver/debug.h>
|
|
|
|
#include "mach_traps.h"
|
|
|
|
@@ -310,8 +311,8 @@
|
|
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, ti=%p task=%p task.ti=%p)",
|
|
- TASK_COMM_LEN, current->comm, current->pid,
|
|
+ printk(KERN_EMERG "Process %.*s (pid: %d[#%u], ti=%p task=%p task.ti=%p)",
|
|
+ TASK_COMM_LEN, current->comm, current->pid, current->xid,
|
|
current_thread_info(), current, current->thread_info);
|
|
/*
|
|
* When in-kernel, we also print out the stack and code at the
|
|
@@ -393,6 +394,8 @@
|
|
|
|
oops_enter();
|
|
|
|
+ vxh_throw_oops();
|
|
+
|
|
if (die.lock_owner != raw_smp_processor_id()) {
|
|
console_verbose();
|
|
spin_lock_irqsave(&die.lock, flags);
|
|
@@ -429,9 +432,9 @@
|
|
if (nl)
|
|
printk("\n");
|
|
if (notify_die(DIE_OOPS, str, regs, err,
|
|
- current->thread.trap_no, SIGSEGV) !=
|
|
- NOTIFY_STOP) {
|
|
+ current->thread.trap_no, SIGSEGV) != NOTIFY_STOP) {
|
|
show_registers(regs);
|
|
+ vxh_dump_history();
|
|
/* Executive summary in case the oops scrolled away */
|
|
esp = (unsigned long) (®s->esp);
|
|
savesegment(ss, ss);
|
|
diff -ur source-amd64-xen/arch/x86_64/ia32/ia32entry-xen.S source-amd64-xen-vserver-patch/arch/x86_64/ia32/ia32entry-xen.S
|
|
--- source-amd64-xen/arch/x86_64/ia32/ia32entry-xen.S 2006-12-15 18:44:42.000000000 +0100
|
|
+++ source-amd64-xen-vserver-patch/arch/x86_64/ia32/ia32entry-xen.S 2006-12-15 18:45:43.000000000 +0100
|
|
@@ -695,7 +695,7 @@
|
|
.quad sys_tgkill /* 270 */
|
|
.quad compat_sys_utimes
|
|
.quad sys32_fadvise64_64
|
|
- .quad quiet_ni_syscall /* sys_vserver */
|
|
+ .quad sys32_vserver
|
|
.quad sys_mbind
|
|
.quad compat_sys_get_mempolicy /* 275 */
|
|
.quad sys_set_mempolicy
|
|
diff -ur source-amd64-xen/arch/x86_64/ia32/syscall32-xen.c source-amd64-xen-vserver-patch/arch/x86_64/ia32/syscall32-xen.c
|
|
--- source-amd64-xen/arch/x86_64/ia32/syscall32-xen.c 2006-12-15 18:44:42.000000000 +0100
|
|
+++ source-amd64-xen-vserver-patch/arch/x86_64/ia32/syscall32-xen.c 2006-12-15 18:45:43.000000000 +0100
|
|
@@ -10,6 +10,7 @@
|
|
#include <linux/init.h>
|
|
#include <linux/stringify.h>
|
|
#include <linux/security.h>
|
|
+#include <linux/vs_memory.h>
|
|
#include <asm/proto.h>
|
|
#include <asm/tlbflush.h>
|
|
#include <asm/ia32_unistd.h>
|
|
@@ -75,7 +76,7 @@
|
|
kmem_cache_free(vm_area_cachep, vma);
|
|
return ret;
|
|
}
|
|
- mm->total_vm += npages;
|
|
+ vx_vmpages_add(mm, npages);
|
|
up_write(&mm->mmap_sem);
|
|
return 0;
|
|
}
|
|
diff -ur source-amd64-xen/arch/x86_64/kernel/traps-xen.c source-amd64-xen-vserver-patch/arch/x86_64/kernel/traps-xen.c
|
|
--- source-amd64-xen/arch/x86_64/kernel/traps-xen.c 2006-12-15 18:44:42.000000000 +0100
|
|
+++ source-amd64-xen-vserver-patch/arch/x86_64/kernel/traps-xen.c 2006-12-15 18:45:43.000000000 +0100
|
|
@@ -435,8 +435,9 @@
|
|
|
|
printk("CPU %d ", cpu);
|
|
__show_regs(regs);
|
|
- printk("Process %s (pid: %d, threadinfo %p, task %p)\n",
|
|
- cur->comm, cur->pid, task_thread_info(cur), cur);
|
|
+ printk("Process %s (pid: %d[#%u], threadinfo %p, task %p)\n",
|
|
+ cur->comm, cur->pid, cur->xid,
|
|
+ task_thread_info(cur), cur);
|
|
|
|
/*
|
|
* When in-kernel, we also print out the stack and code at the
|