It looks obviously wrong.
A guest OS which uses long format VHPT might be confused.
-- Kouya
Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
diff -r 96331db61e47 xen/arch/ia64/vmx/vmmu.c
--- a/xen/arch/ia64/vmx/vmmu.c Wed Jun 06 09:30:01 2007 -0600
+++ b/xen/arch/ia64/vmx/vmmu.c Thu Jun 07 19:15:33 2007 +0900
@@ -646,7 +646,7 @@ u64 vmx_vcpu_thash(VCPU *vcpu, u64 vadr)
if(vpta.vf){
pval = ia64_call_vsa(PAL_VPS_THASH, vadr, vrr.rrval,
vpta.val, 0, 0, 0, 0);
- pval = vpta.val & ~0xffff;
+ pval = (vpta.val & ~0x7FFF) | (pval & ((1UL << vpta.size) - 1));
}else{
vhpt_offset=((vadr>>vrr.ps)<<3)&((1UL<<(vpta.size))-1);
pval = (vadr & VRN_MASK) |
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|