# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 405f0f847c0f33381c69a04a168f34150a2bca7d
# Parent 3b877779e9a3522d83fde9dfe5d43d16b571dc17
[IA64] in_tpa is now an argument of vcpu_translate
this makes in_tpa SMP-safe.
Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>
diff -r 3b877779e9a3 -r 405f0f847c0f xen/arch/ia64/xen/process.c
--- a/xen/arch/ia64/xen/process.c Thu Mar 9 23:16:20 2006
+++ b/xen/arch/ia64/xen/process.c Thu Mar 9 23:24:31 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 3b877779e9a3 -r 405f0f847c0f xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c Thu Mar 9 23:16:20 2006
+++ b/xen/arch/ia64/xen/vcpu.c Thu Mar 9 23:24:31 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 <linux/sched.h>
#include <public/arch-ia64.h>
@@ -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 3b877779e9a3 -r 405f0f847c0f xen/include/asm-ia64/vcpu.h
--- a/xen/include/asm-ia64/vcpu.h Thu Mar 9 23:16:20 2006
+++ b/xen/include/asm-ia64/vcpu.h Thu Mar 9 23:24:31 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);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|