diff --git a/debian/changelog b/debian/changelog index 12a8fd2f1..4bcde91bf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,8 +11,9 @@ linux-2.6 (2.6.18-5) UNRELEASED; urgency=low [ Bastian Blank ] * Update vserver patch to 2.0.2.2-rc5. + * Update xen parts for vserver. (closes: #397281) - -- Bastian Blank Mon, 6 Nov 2006 13:15:37 +0100 + -- Bastian Blank Mon, 6 Nov 2006 14:24:00 +0100 linux-2.6 (2.6.18-4) unstable; urgency=low diff --git a/debian/patches/features/all/xen/vserver-update.patch b/debian/patches/features/all/xen/vserver-update.patch new file mode 100644 index 000000000..7e54e9b99 --- /dev/null +++ b/debian/patches/features/all/xen/vserver-update.patch @@ -0,0 +1,155 @@ +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-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/i386/kernel/irq-xen.c 2006-11-06 12:06:08.000000000 +0100 +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + DEFINE_PER_CPU(irq_cpustat_t, irq_stat) ____cacheline_internodealigned_in_smp; + EXPORT_PER_CPU_SYMBOL(irq_stat); +@@ -55,6 +56,7 @@ + { + /* high bit used in ret_from_ code */ + int irq = ~regs->orig_eax; ++ struct vx_info_save vxis; + #ifdef CONFIG_4KSTACKS + union irq_ctx *curctx, *irqctx; + u32 *isp; +@@ -81,7 +83,7 @@ + } + } + #endif +- ++ __enter_vx_admin(&vxis); + #ifdef CONFIG_4KSTACKS + + curctx = (union irq_ctx *) current_thread_info(); +@@ -120,6 +122,7 @@ + } else + #endif + __do_IRQ(irq, regs); ++ __leave_vx_admin(&vxis); + + irq_exit(); + +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-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/i386/kernel/traps-xen.c 2006-11-06 12:06:08.000000000 +0100 +@@ -53,6 +53,7 @@ + #include + + #include ++#include + + #include "mach_traps.h" + +@@ -309,8 +310,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 +@@ -392,6 +393,8 @@ + + oops_enter(); + ++ vxh_throw_oops(); ++ + if (die.lock_owner != raw_smp_processor_id()) { + console_verbose(); + spin_lock_irqsave(&die.lock, flags); +@@ -428,9 +431,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-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/x86_64/ia32/ia32entry-xen.S 2006-11-06 12:06:08.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-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/x86_64/ia32/syscall32-xen.c 2006-11-06 12:06:08.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -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/irq-xen.c source-amd64-xen-vserver-patch/arch/x86_64/kernel/irq-xen.c +--- source-amd64-xen/arch/x86_64/kernel/irq-xen.c 2006-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/x86_64/kernel/irq-xen.c 2006-11-06 12:06:08.000000000 +0100 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -117,6 +118,7 @@ + { + /* high bit used in ret_from_ code */ + unsigned irq = ~regs->orig_rax; ++ struct vx_info_save vxis; + + if (unlikely(irq >= NR_IRQS)) { + printk(KERN_EMERG "%s: cannot handle IRQ %d\n", +@@ -130,7 +132,9 @@ + #ifdef CONFIG_DEBUG_STACKOVERFLOW + stack_overflow_check(regs); + #endif ++ __enter_vx_admin(&vxis); + __do_IRQ(irq, regs); ++ __leave_vx_admin(&vxis); + irq_exit(); + + return 1; +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-11-06 11:57:48.000000000 +0100 ++++ source-amd64-xen-vserver-patch/arch/x86_64/kernel/traps-xen.c 2006-11-06 12:06:08.000000000 +0100 +@@ -436,8 +436,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 diff --git a/debian/patches/series/5-extra b/debian/patches/series/5-extra index 8bcc6010d..f74200ac2 100644 --- a/debian/patches/series/5-extra +++ b/debian/patches/series/5-extra @@ -2,3 +2,4 @@ + features/all/vserver/bindmount-dev.patch *_vserver *_xen-vserver + features/all/xen/vserver-clash.patch *_xen-vserver + features/all/xen/fedora-36252.patch *_xen *_xen-vserver ++ features/all/xen/vserver-update.patch *_xen-vserver