# HG changeset patch
# User yamahata@xxxxxxxxxxxxx
# Date 1199690089 -32400
# Node ID 105c577732e610b2a20d44098aab17615e2e47d6
# Parent 3fa9bfb63a947099e0202c25437eb785507d6025
don't refer domain->arch.rid_bits from optfaults.S.
copy it to struct arch_vcpu.
PATCHNAME: arch_vcpu_rid_bits
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/asm-offsets.c
--- a/xen/arch/ia64/asm-offsets.c Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/asm-offsets.c Mon Jan 07 16:14:49 2008 +0900
@@ -69,6 +69,7 @@ void foo(void)
DEFINE(IA64_VCPU_INSVC3_OFFSET, offsetof (struct vcpu, arch.insvc[3]));
DEFINE(IA64_VCPU_STARTING_RID_OFFSET, offsetof (struct vcpu,
arch.starting_rid));
DEFINE(IA64_VCPU_ENDING_RID_OFFSET, offsetof (struct vcpu,
arch.ending_rid));
+ DEFINE(IA64_VCPU_RID_BITS_OFFSET, offsetof (struct vcpu,
arch.rid_bits));
DEFINE(IA64_VCPU_DOMAIN_ITM_OFFSET, offsetof (struct vcpu,
arch.domain_itm));
DEFINE(IA64_VCPU_DOMAIN_ITM_LAST_OFFSET, offsetof (struct vcpu,
arch.domain_itm_last));
DEFINE(IA64_VCPU_ITLB_OFFSET, offsetof (struct vcpu, arch.itlb));
@@ -78,7 +79,6 @@ void foo(void)
BLANK();
DEFINE(IA64_DOMAIN_SHADOW_BITMAP_OFFSET, offsetof (struct domain,
arch.shadow_bitmap));
- DEFINE(IA64_DOMAIN_RID_BITS_OFFSET, offsetof (struct domain,
arch.rid_bits));
BLANK();
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/vmx/optvfault.S
--- a/xen/arch/ia64/vmx/optvfault.S Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/vmx/optvfault.S Mon Jan 07 16:14:49 2008 +0900
@@ -95,11 +95,10 @@ GLOBAL_ENTRY(vmx_asm_mov_to_rr)
#ifndef ACCE_MOV_TO_RR
br.many vmx_virtualization_fault_back
#endif
- add r22=IA64_VCPU_DOMAIN_OFFSET,r21
+ add r22=IA64_VCPU_RID_BITS_OFFSET,r21
extr.u r16=r25,20,7 // r3
extr.u r17=r25,13,7 // r2
;;
- ld8 r22=[r22] // Get domain
movl r20=asm_mov_from_reg
;;
adds r30=vmx_asm_mov_to_rr_back_1-asm_mov_from_reg,r20
@@ -126,7 +125,6 @@ vmx_asm_mov_to_rr_back_2:
vmx_asm_mov_to_rr_back_2:
adds r30=vmx_resume_to_guest-asm_mov_from_reg,r20
shladd r27=r23,3,r27 // address of VRR
- add r22=IA64_DOMAIN_RID_BITS_OFFSET,r22
;;
ld1 r22=[r22] // Load rid_bits from domain
mov b0=r18 // restore b0
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/xen/domain.c Mon Jan 07 16:14:49 2008 +0900
@@ -466,6 +466,7 @@ int vcpu_initialise(struct vcpu *v)
v->arch.starting_rid = d->arch.starting_rid;
v->arch.ending_rid = d->arch.ending_rid;
+ v->arch.rid_bits = d->arch.rid_bits;
v->arch.breakimm = d->arch.breakimm;
v->arch.last_processor = INVALID_PROCESSOR;
v->arch.vhpt_pg_shift = PAGE_SHIFT;
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/include/asm-ia64/domain.h
--- a/xen/include/asm-ia64/domain.h Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/include/asm-ia64/domain.h Mon Jan 07 16:14:49 2008 +0900
@@ -263,6 +263,7 @@ struct arch_vcpu {
int breakimm; // from arch_domain (so is pinned)
int starting_rid; /* first RID assigned to domain */
int ending_rid; /* one beyond highest RID assigned to domain */
+ unsigned char rid_bits; // from arch_domain (so is pinned)
/* Bitset for debug register use. */
unsigned int dbg_used;
16702_105c577732e6_arch_vcpu_rid_bits.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|