[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [IA64] Fix domainU boot when VTi domainexists
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID a40e66748ee96d2120f84baccdf552c0d6e505fa # Parent 2b6e531dab38da94fd07996e705ece6a3f7fabe3 [IA64] Fix domainU boot when VTi domainexists This patch intends to fix domainU boot after VTi domain booted up. Currently domainU can't boot after domain VTi booted up.The root cause is when VTi domain exists, iva register points to ivt which belongs to VTi domain but different to domU. After DomU createing and being scheduled for fist time, context_switch won't be executed completely but through another execution path to leave kernel. This will lead to LP's(run domU) iva and pta point to VTi domain's ivt and pta. So when DomainU boots, domain VTi and domainU will hang. Singed-off-by: Zhang xiantao <xiantao.zhang@xxxxxxxxx> Singed-off-by: Kevin Tian <kevin.tian@xxxxxxxxx> diff -r 2b6e531dab38 -r a40e66748ee9 xen/arch/ia64/xen/process.c --- a/xen/arch/ia64/xen/process.c Thu Mar 30 09:55:26 2006 -0700 +++ b/xen/arch/ia64/xen/process.c Thu Mar 30 12:40:24 2006 -0700 @@ -30,6 +30,7 @@ #include <asm/vcpu.h> #include <asm/ia64_int.h> #include <asm/dom_fw.h> +#include <asm/vhpt.h> #include "hpsim_ssc.h" #include <xen/multicall.h> #include <asm/debugger.h> @@ -63,11 +64,15 @@ extern unsigned long dom0_start, dom0_si void schedule_tail(struct vcpu *prev) { + extern char ia64_ivt; context_saved(prev); if (VMX_DOMAIN(current)) { vmx_do_launch(current); } else { + ia64_set_iva(&ia64_ivt); + ia64_set_pta(VHPT_ADDR | (1 << 8) | (VHPT_SIZE_LOG2 << 2) | + VHPT_ENABLED); load_region_regs(current); vcpu_load_kernel_regs(current); } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |