[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [V0 PATCH 4/6] AMD-PVH: Do not get/set vlapic TPR
On 08/15/2014 09:53 PM, Mukesh Rathor wrote: PVH doesn't use apic emulation hence vlapic->regs ptr is not set for it. Signed-off-by: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> --- xen/arch/x86/hvm/svm/svm.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index dac16f4..4bb4ff2 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1052,7 +1052,7 @@ static void noreturn svm_do_resume(struct vcpu *v) hvm_asid_flush_vcpu(v); }- if ( !vcpu_guestmode )+ if ( !vcpu_guestmode && vcpu_vlapic(v)->regs ) I think checking explicitly for PVH (i.e. is_pvh_domain()) would be better. Here and below, obviously. -boris { vintr_t intr;@@ -2247,7 +2247,7 @@ void svm_vmexit_handler(struct cpu_user_regs *regs)* NB. We need to preserve the low bits of the TPR to make checked builds * of Windows work, even though they don't actually do anything. */ - if ( !vcpu_guestmode ) { + if ( !vcpu_guestmode && vcpu_vlapic(v)->regs ) { intr = vmcb_get_vintr(vmcb); vlapic_set_reg(vcpu_vlapic(v), APIC_TASKPRI, ((intr.fields.tpr & 0x0F) << 4) | @@ -2628,15 +2628,18 @@ void svm_vmexit_handler(struct cpu_user_regs *regs) }out:- if ( vcpu_guestmode ) - /* Don't clobber TPR of the nested guest. */ - return; - - /* The exit may have updated the TPR: reflect this in the hardware vtpr */ - intr = vmcb_get_vintr(vmcb); - intr.fields.tpr = - (vlapic_get_reg(vcpu_vlapic(v), APIC_TASKPRI) & 0xFF) >> 4; - vmcb_set_vintr(vmcb, intr); + /* Don't clobber TPR of the nested guest. */ + if ( vcpu_guestmode && vcpu_vlapic(v)->regs ) + { + /* + * The exit may have updated the TPR: reflect this in the hardware + * vtpr. + */ + intr = vmcb_get_vintr(vmcb); + intr.fields.tpr = + (vlapic_get_reg(vcpu_vlapic(v), APIC_TASKPRI) & 0xFF) >> 4; + vmcb_set_vintr(vmcb, intr); + } }void svm_trace_vmentry(void) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |