ia64/xen-unstable

changeset 16782:4f1f9ee50133

[IA64] domheap: Don't refer domain->arch.rid_bits from optfaults.S

Copy it to struct arch_vcpu.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author Alex Williamson <alex.williamson@hp.com>
date Thu Jan 17 12:05:43 2008 -0700 (2008-01-17)
parents 6f7e6608cb74
children d0216f9e87c1
files xen/arch/ia64/asm-offsets.c xen/arch/ia64/vmx/optvfault.S xen/arch/ia64/xen/domain.c xen/include/asm-ia64/domain.h
line diff
     1.1 --- a/xen/arch/ia64/asm-offsets.c	Thu Jan 17 12:05:43 2008 -0700
     1.2 +++ b/xen/arch/ia64/asm-offsets.c	Thu Jan 17 12:05:43 2008 -0700
     1.3 @@ -70,6 +70,7 @@ void foo(void)
     1.4  	DEFINE(IA64_VCPU_INSVC3_OFFSET, offsetof (struct vcpu, arch.insvc[3]));
     1.5  	DEFINE(IA64_VCPU_STARTING_RID_OFFSET, offsetof (struct vcpu, arch.starting_rid));
     1.6  	DEFINE(IA64_VCPU_ENDING_RID_OFFSET, offsetof (struct vcpu, arch.ending_rid));
     1.7 +	DEFINE(IA64_VCPU_RID_BITS_OFFSET, offsetof (struct vcpu, arch.rid_bits));
     1.8  	DEFINE(IA64_VCPU_DOMAIN_ITM_OFFSET, offsetof (struct vcpu, arch.domain_itm));
     1.9  	DEFINE(IA64_VCPU_DOMAIN_ITM_LAST_OFFSET, offsetof (struct vcpu, arch.domain_itm_last));
    1.10  	DEFINE(IA64_VCPU_ITLB_OFFSET, offsetof (struct vcpu, arch.itlb));
    1.11 @@ -79,7 +80,6 @@ void foo(void)
    1.12  	BLANK();
    1.13  
    1.14  	DEFINE(IA64_DOMAIN_SHADOW_BITMAP_OFFSET, offsetof (struct domain, arch.shadow_bitmap));
    1.15 -	DEFINE(IA64_DOMAIN_RID_BITS_OFFSET, offsetof (struct domain, arch.rid_bits));
    1.16  
    1.17  	BLANK();
    1.18  
     2.1 --- a/xen/arch/ia64/vmx/optvfault.S	Thu Jan 17 12:05:43 2008 -0700
     2.2 +++ b/xen/arch/ia64/vmx/optvfault.S	Thu Jan 17 12:05:43 2008 -0700
     2.3 @@ -95,11 +95,10 @@ GLOBAL_ENTRY(vmx_asm_mov_to_rr)
     2.4  #ifndef ACCE_MOV_TO_RR
     2.5      br.many vmx_virtualization_fault_back
     2.6  #endif
     2.7 -    add r22=IA64_VCPU_DOMAIN_OFFSET,r21
     2.8 +    add r22=IA64_VCPU_RID_BITS_OFFSET,r21
     2.9      extr.u r16=r25,20,7		// r3
    2.10      extr.u r17=r25,13,7		// r2
    2.11      ;;
    2.12 -    ld8 r22=[r22]		// Get domain
    2.13      movl r20=asm_mov_from_reg
    2.14      ;;
    2.15      adds r30=vmx_asm_mov_to_rr_back_1-asm_mov_from_reg,r20
    2.16 @@ -126,7 +125,6 @@ vmx_asm_mov_to_rr_back_1:
    2.17  vmx_asm_mov_to_rr_back_2: 
    2.18      adds r30=vmx_resume_to_guest-asm_mov_from_reg,r20
    2.19      shladd r27=r23,3,r27	// address of VRR
    2.20 -    add r22=IA64_DOMAIN_RID_BITS_OFFSET,r22
    2.21      ;;
    2.22      ld1 r22=[r22]		// Load rid_bits from domain
    2.23      mov b0=r18			// restore b0
     3.1 --- a/xen/arch/ia64/xen/domain.c	Thu Jan 17 12:05:43 2008 -0700
     3.2 +++ b/xen/arch/ia64/xen/domain.c	Thu Jan 17 12:05:43 2008 -0700
     3.3 @@ -466,6 +466,7 @@ int vcpu_initialise(struct vcpu *v)
     3.4  
     3.5  	    v->arch.starting_rid = d->arch.starting_rid;
     3.6  	    v->arch.ending_rid = d->arch.ending_rid;
     3.7 +	    v->arch.rid_bits = d->arch.rid_bits;
     3.8  	    v->arch.breakimm = d->arch.breakimm;
     3.9  	    v->arch.last_processor = INVALID_PROCESSOR;
    3.10  	    v->arch.vhpt_pg_shift = PAGE_SHIFT;
     4.1 --- a/xen/include/asm-ia64/domain.h	Thu Jan 17 12:05:43 2008 -0700
     4.2 +++ b/xen/include/asm-ia64/domain.h	Thu Jan 17 12:05:43 2008 -0700
     4.3 @@ -262,6 +262,7 @@ struct arch_vcpu {
     4.4      int breakimm;			// from arch_domain (so is pinned)
     4.5      int starting_rid;		/* first RID assigned to domain */
     4.6      int ending_rid;		/* one beyond highest RID assigned to domain */
     4.7 +    unsigned char rid_bits;     // from arch_domain (so is pinned)
     4.8  
     4.9      /* Bitset for debug register use.  */
    4.10      unsigned int dbg_used;