# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1185833417 21600
# Node ID 85c2f2d754ef2a0f557470ff19518e1cf06310b5
# Parent 522a1932111f225bf4ab05d9260fc1f49160b0de
[IA64] Use key in optimzation feature
Added IA64_INST_KEY_MISS_VECTOR and IA64_DATA_KEY_MISS_VECTOR to
ia64_handle_reflection. Added using the key in handling
XEN_IA64_OPTF_IDENT_MAP_REG7 in PV.
Signed-off-by: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
---
xen/arch/ia64/xen/faults.c | 6 ++++++
xen/arch/ia64/xen/vcpu.c | 5 +++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff -r 522a1932111f -r 85c2f2d754ef xen/arch/ia64/xen/faults.c
--- a/xen/arch/ia64/xen/faults.c Mon Jul 30 16:07:11 2007 -0600
+++ b/xen/arch/ia64/xen/faults.c Mon Jul 30 16:10:17 2007 -0600
@@ -572,6 +572,12 @@ ia64_handle_reflection(unsigned long ifa
BUG_ON(!(psr & IA64_PSR_CPL));
switch (vector) {
+ case 6:
+ vector = IA64_INST_KEY_MISS_VECTOR;
+ break;
+ case 7:
+ vector = IA64_DATA_KEY_MISS_VECTOR;
+ break;
case 8:
vector = IA64_DIRTY_BIT_VECTOR;
break;
diff -r 522a1932111f -r 85c2f2d754ef xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c Mon Jul 30 16:07:11 2007 -0600
+++ b/xen/arch/ia64/xen/vcpu.c Mon Jul 30 16:10:17 2007 -0600
@@ -1623,7 +1623,7 @@ IA64FAULT vcpu_translate(VCPU * vcpu, u6
u64 * pteval, u64 * itir, u64 * iha)
{
unsigned long region = address >> 61;
- unsigned long pta, rid, rr;
+ unsigned long pta, rid, rr, key = 0;
union pte_flags pte;
TR_ENTRY *trp;
@@ -1716,6 +1716,7 @@ IA64FAULT vcpu_translate(VCPU * vcpu, u6
region == 7 && ia64_psr(regs)->cpl == CONFIG_CPL0_EMUL) {
pte.val = address & _PAGE_PPN_MASK;
pte.val = pte.val | optf->im_reg7.pgprot;
+ key = optf->im_reg7.key;
goto out;
}
return is_data ? IA64_ALT_DATA_TLB_VECTOR :
@@ -1741,7 +1742,7 @@ IA64FAULT vcpu_translate(VCPU * vcpu, u6
/* found mapping in guest VHPT! */
out:
- *itir = rr & RR_PS_MASK;
+ *itir = (rr & RR_PS_MASK) | (key << IA64_ITIR_KEY);
*pteval = pte.val;
perfc_incr(vhpt_translate);
return IA64_NO_FAULT;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|