# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1171300237 25200
# Node ID 8bdbe88e422f85f14e1451e6cfc7e8aa2da6a1c8
# Parent 5982d478698fd97099635feef97531d60ed6f0ae
[IA64] Fix save/restore bug
DCR.dm fix, in case v->arch.privregs is NULL
Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
---
xen/arch/ia64/linux-xen/setup.c | 3 +--
xen/arch/ia64/xen/domain.c | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff -r 5982d478698f -r 8bdbe88e422f xen/arch/ia64/linux-xen/setup.c
--- a/xen/arch/ia64/linux-xen/setup.c Mon Feb 12 10:06:46 2007 -0700
+++ b/xen/arch/ia64/linux-xen/setup.c Mon Feb 12 10:10:37 2007 -0700
@@ -862,8 +862,7 @@ cpu_init (void)
* be fine).
*/
#ifdef XEN
- ia64_setreg(_IA64_REG_CR_DCR, ( IA64_DCR_DP | IA64_DCR_DK |
IA64_DCR_DX | IA64_DCR_DR
- | IA64_DCR_PP | IA64_DCR_DA | IA64_DCR_DD |
IA64_DCR_LC));
+ ia64_setreg(_IA64_REG_CR_DCR, IA64_DEFAULT_DCR_BITS);
#else
ia64_setreg(_IA64_REG_CR_DCR, ( IA64_DCR_DP | IA64_DCR_DK |
IA64_DCR_DX | IA64_DCR_DR
| IA64_DCR_DA | IA64_DCR_DD |
IA64_DCR_LC));
diff -r 5982d478698f -r 8bdbe88e422f xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Mon Feb 12 10:06:46 2007 -0700
+++ b/xen/arch/ia64/xen/domain.c Mon Feb 12 10:10:37 2007 -0700
@@ -581,7 +581,7 @@ void arch_get_info_guest(struct vcpu *v,
er->dtrs[i].rid = v->arch.dtrs[i].rid;
}
er->event_callback_ip = v->arch.event_callback_ip;
- er->dcr = PSCB(v,dcr);
+ er->dcr = v->arch.privregs ? PSCB(v,dcr) : 0;
er->iva = v->arch.iva;
}
@@ -617,7 +617,6 @@ int arch_set_info_guest(struct vcpu *v,
er->dtrs[i].rid);
}
v->arch.event_callback_ip = er->event_callback_ip;
- PSCB(v,dcr) = er->dcr;
v->arch.iva = er->iva;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|