# HG changeset patch # User Tristan Gingold # Date 1193187544 -7200 # Node ID 396f89316b8bc74aee932790e19f1c5885da117c # Parent 91705524ac96026d374b866cf297d7e1fb4d46c8 Merge PV and VTi kr registers. Signed-off-by: Tristan Gingold diff -r 91705524ac96 -r 396f89316b8b xen/arch/ia64/vmx/vmx_init.c --- a/xen/arch/ia64/vmx/vmx_init.c Wed Oct 24 02:52:49 2007 +0200 +++ b/xen/arch/ia64/vmx/vmx_init.c Wed Oct 24 02:59:04 2007 +0200 @@ -232,14 +232,14 @@ vmx_save_state(struct vcpu *v) /* Need to save KR when domain switch, though HV itself doesn;t * use them. */ - v->arch.arch_vmx.vkr[0] = ia64_get_kr(0); - v->arch.arch_vmx.vkr[1] = ia64_get_kr(1); - v->arch.arch_vmx.vkr[2] = ia64_get_kr(2); - v->arch.arch_vmx.vkr[3] = ia64_get_kr(3); - v->arch.arch_vmx.vkr[4] = ia64_get_kr(4); - v->arch.arch_vmx.vkr[5] = ia64_get_kr(5); - v->arch.arch_vmx.vkr[6] = ia64_get_kr(6); - v->arch.arch_vmx.vkr[7] = ia64_get_kr(7); + v->arch.privregs->krs[0] = ia64_get_kr(0); + v->arch.privregs->krs[1] = ia64_get_kr(1); + v->arch.privregs->krs[2] = ia64_get_kr(2); + v->arch.privregs->krs[3] = ia64_get_kr(3); + v->arch.privregs->krs[4] = ia64_get_kr(4); + v->arch.privregs->krs[5] = ia64_get_kr(5); + v->arch.privregs->krs[6] = ia64_get_kr(6); + v->arch.privregs->krs[7] = ia64_get_kr(7); } /* Even guest is in physical mode, we still need such double mapping */ @@ -253,14 +253,14 @@ vmx_load_state(struct vcpu *v) panic_domain(vcpu_regs(v),"Restore vp status failed\n"); } - ia64_set_kr(0, v->arch.arch_vmx.vkr[0]); - ia64_set_kr(1, v->arch.arch_vmx.vkr[1]); - ia64_set_kr(2, v->arch.arch_vmx.vkr[2]); - ia64_set_kr(3, v->arch.arch_vmx.vkr[3]); - ia64_set_kr(4, v->arch.arch_vmx.vkr[4]); - ia64_set_kr(5, v->arch.arch_vmx.vkr[5]); - ia64_set_kr(6, v->arch.arch_vmx.vkr[6]); - ia64_set_kr(7, v->arch.arch_vmx.vkr[7]); + ia64_set_kr(0, v->arch.privregs->krs[0]); + ia64_set_kr(1, v->arch.privregs->krs[1]); + ia64_set_kr(2, v->arch.privregs->krs[2]); + ia64_set_kr(3, v->arch.privregs->krs[3]); + ia64_set_kr(4, v->arch.privregs->krs[4]); + ia64_set_kr(5, v->arch.privregs->krs[5]); + ia64_set_kr(6, v->arch.privregs->krs[6]); + ia64_set_kr(7, v->arch.privregs->krs[7]); /* Guest vTLB is not required to be switched explicitly, since * anchored in vcpu */ } diff -r 91705524ac96 -r 396f89316b8b xen/include/asm-ia64/vmx_vpd.h --- a/xen/include/asm-ia64/vmx_vpd.h Wed Oct 24 02:52:49 2007 +0200 +++ b/xen/include/asm-ia64/vmx_vpd.h Wed Oct 24 02:59:04 2007 +0200 @@ -49,7 +49,6 @@ struct arch_vmx_struct { /* if the corresponding bit is 1, then this page size is used in this region */ unsigned long psbits[8]; - unsigned long vkr[8]; unsigned long cr_iipa; /* for emulation */ unsigned long cr_isr; /* for emulation */ unsigned long cause;