[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix read of guest psr to properly set dfh and other bits (by Matt Chapman)
# HG changeset patch # User djm@xxxxxxxxxxxxxxx # Node ID 84f9bec4feaf996671eabd83694ea19a3bdbbaaf # Parent 14393678d999399af2b63617f01b18ec83948ae8 Fix read of guest psr to properly set dfh and other bits (by Matt Chapman) diff -r 14393678d999 -r 84f9bec4feaf xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Fri Nov 18 16:58:03 2005 +++ b/xen/arch/ia64/xen/vcpu.c Fri Nov 18 17:04:58 2005 @@ -345,19 +345,17 @@ IA64FAULT vcpu_get_psr(VCPU *vcpu, UINT64 *pval) { - UINT64 psr; + REGS *regs = vcpu_regs(vcpu); struct ia64_psr newpsr; - // TODO: This needs to return a "filtered" view of - // the psr, not the actual psr. Probably the psr needs - // to be a field in regs (in addition to ipsr). - __asm__ __volatile ("mov %0=psr;;" : "=r"(psr) :: "memory"); - newpsr = *(struct ia64_psr *)&psr; + newpsr = *(struct ia64_psr *)®s->cr_ipsr; if (newpsr.cpl == 2) newpsr.cpl = 0; if (PSCB(vcpu,interrupt_delivery_enabled)) newpsr.i = 1; else newpsr.i = 0; if (PSCB(vcpu,interrupt_collection_enabled)) newpsr.ic = 1; else newpsr.ic = 0; + if (PSCB(vcpu,metaphysical_mode)) newpsr.dt = 0; + else newpsr.dt = 1; // FIXME: need new field in mapped_regs_t for virtual psr.pp (psr.be too?) if (PSCB(vcpu,tmp[8])) newpsr.pp = 1; else newpsr.pp = 0; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |