ia64/xen-unstable

changeset 7283:333f722ed6d0

Fixes for correct itir handling in vcpu_translate (broke simulator)
author djm@kirby.fc.hp.com
date Tue Oct 11 15:50:21 2005 -0600 (2005-10-11)
parents bb8120b53a96
children 74d56b7ff46c
files xen/arch/ia64/xen/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/xen/vcpu.c	Sun Oct 09 09:04:49 2005 -0600
     1.2 +++ b/xen/arch/ia64/xen/vcpu.c	Tue Oct 11 15:50:21 2005 -0600
     1.3 @@ -1403,9 +1403,11 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UIN
     1.4  		return (is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_TLB_VECTOR);
     1.5  
     1.6  	vcpu_thash(vcpu, address, iha);
     1.7 -	if (__copy_from_user(&pte, (void *)(*iha), sizeof(pte)) != 0)
     1.8 +	if (__copy_from_user(&pte, (void *)(*iha), sizeof(pte)) != 0) {
     1.9  // FIXME?: does itir get set for vhpt faults?
    1.10 +		*itir = vcpu_get_itir_on_fault(vcpu,*iha);
    1.11  		return IA64_VHPT_FAULT;
    1.12 +	}
    1.13  
    1.14  	/*
    1.15  	 * Optimisation: this VHPT walker aborts on not-present pages
    1.16 @@ -1418,6 +1420,7 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UIN
    1.17  		vhpt_translate_count++;
    1.18  		return IA64_NO_FAULT;
    1.19  	}
    1.20 +	*itir = vcpu_get_itir_on_fault(vcpu,address);
    1.21  	return (is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_TLB_VECTOR);
    1.22  }
    1.23