# HG changeset patch # User tristan.gingold@xxxxxxxx # Node ID 67f67975080840cb70bec97ac71d088dfd23d092 # Parent 637d70d8d44628d3c93ff96c4f8124036c7d1bb0 in_tpa is now an argument of vcpu_translate. Signed-off-by: Tristan Gingold diff -r 637d70d8d446 -r 67f679750808 xen/arch/ia64/xen/process.c --- a/xen/arch/ia64/xen/process.c Thu Mar 9 05:34:57 2006 +++ b/xen/arch/ia64/xen/process.c Thu Mar 9 06:19:22 2006 @@ -280,7 +280,7 @@ return; } - fault = vcpu_translate(current,address,is_data,&pteval,&itir,&iha); + fault = vcpu_translate(current,address,is_data,0,&pteval,&itir,&iha); if (fault == IA64_NO_FAULT) { pteval = translate_domain_pte(pteval,address,itir); vcpu_itc_no_srlz(current,is_data?2:1,address,pteval,-1UL,(itir>>2)&0x3f); diff -r 637d70d8d446 -r 67f679750808 xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Thu Mar 9 05:34:57 2006 +++ b/xen/arch/ia64/xen/vcpu.c Thu Mar 9 06:19:22 2006 @@ -5,12 +5,6 @@ * Dan Magenheimer (dan.magenheimer@xxxxxx) * */ - -#if 1 -// TEMPORARY PATCH for match_dtlb uses this, can be removed later -// FIXME SMP -int in_tpa = 0; -#endif #include #include @@ -1290,7 +1284,7 @@ int warn_region0_address = 0; // FIXME later: tie to a boot parameter? -IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pteval, UINT64 *itir, UINT64 *iha) +IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, BOOLEAN in_tpa, UINT64 *pteval, UINT64 *itir, UINT64 *iha) { unsigned long region = address >> 61; unsigned long pta, pte, rid, rr; @@ -1402,9 +1396,7 @@ UINT64 pteval, itir, mask, iha; IA64FAULT fault; - in_tpa = 1; - fault = vcpu_translate(vcpu, vadr, 1, &pteval, &itir, &iha); - in_tpa = 0; + fault = vcpu_translate(vcpu, vadr, TRUE, TRUE, &pteval, &itir, &iha); if (fault == IA64_NO_FAULT) { mask = itir_mask(itir); diff -r 637d70d8d446 -r 67f679750808 xen/include/asm-ia64/vcpu.h --- a/xen/include/asm-ia64/vcpu.h Thu Mar 9 05:34:57 2006 +++ b/xen/include/asm-ia64/vcpu.h Thu Mar 9 06:19:22 2006 @@ -140,7 +140,9 @@ extern IA64FAULT vcpu_ptc_ga(VCPU *vcpu, UINT64 vadr, UINT64 addr_range); extern IA64FAULT vcpu_ptr_d(VCPU *vcpu,UINT64 vadr, UINT64 addr_range); extern IA64FAULT vcpu_ptr_i(VCPU *vcpu,UINT64 vadr, UINT64 addr_range); -extern IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pteval, UINT64 *itir, UINT64 *iha); +extern IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, + BOOLEAN is_data, BOOLEAN in_tpa, + UINT64 *pteval, UINT64 *itir, UINT64 *iha); extern IA64FAULT vcpu_tpa(VCPU *vcpu, UINT64 vadr, UINT64 *padr); extern IA64FAULT vcpu_force_data_miss(VCPU *vcpu, UINT64 ifa); extern IA64FAULT vcpu_fc(VCPU *vcpu, UINT64 vadr);