[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Fix early bootstrap of secondary VCPUs on x86/64.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID e813ac9f7d23783a9c2d1f342ae46128fb3afa36
# Parent  d8b35f72a587a99f554632fe4022261c509e038e
Fix early bootstrap of secondary VCPUs on x86/64.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r d8b35f72a587 -r e813ac9f7d23 
linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c    Fri Oct 21 12:30:31 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/smpboot.c    Fri Oct 21 13:33:46 2005
@@ -179,6 +179,8 @@
        ctxt.syscall_callback_eip  = (unsigned long)system_call;
 
        ctxt.ctrlreg[3] = virt_to_mfn(init_level4_pgt) << PAGE_SHIFT;
+
+       ctxt.gs_base_kernel = (unsigned long)(cpu_pda + vcpu);
 #endif
 
        BUG_ON(HYPERVISOR_vcpu_op(VCPUOP_initialise, vcpu, &ctxt));
@@ -207,6 +209,13 @@
                idle = fork_idle(cpu);
                if (IS_ERR(idle))
                        panic("failed fork for CPU %d", cpu);
+
+#ifdef __x86_64__
+               cpu_pda[cpu].pcurrent = idle;
+               cpu_pda[cpu].cpunumber = cpu;
+               per_cpu(init_tss,cpu).rsp0 = idle->thread.rsp;
+               clear_ti_thread_flag(idle->thread_info, TIF_FORK);
+#endif
 
                irq_ctx_init(cpu);
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.