|
|
|
|
|
|
|
|
|
|
xen-changelog
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [IA64] Fix domainU boot when VTi domainexists,
Xen patchbot -unstable <=
|
|
|
|
|