Fixes for correct itir handling in vcpu_translate (broke simulator)

This commit is contained in:
djm@kirby.fc.hp.com committed 2005-10-11 15:50:21 -06:00
1 parent 61f98e4923
commit 56b309fa71
1 file changed
+4 -1
+4 -1
View File
@@ -1403,9 +1403,11 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pt
return (is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_TLB_VECTOR);
vcpu_thash(vcpu, address, iha);
if (__copy_from_user(&pte, (void *)(*iha), sizeof(pte)) != 0)
if (__copy_from_user(&pte, (void *)(*iha), sizeof(pte)) != 0) {
// FIXME?: does itir get set for vhpt faults?
*itir = vcpu_get_itir_on_fault(vcpu,*iha);
return IA64_VHPT_FAULT;
}
/*
* Optimisation: this VHPT walker aborts on not-present pages
@@ -1418,6 +1420,7 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pt
vhpt_translate_count++;
return IA64_NO_FAULT;
}
*itir = vcpu_get_itir_on_fault(vcpu,address);
return (is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_TLB_VECTOR);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.