|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 2/5] x86/nestedsvm: remove nv_vmentry_pending
From: Chunjie Zhu <chunjie.zhu@xxxxxxxxxx>
Signed-off-by: Chunjie Zhu <chunjie.zhu@xxxxxxxxxx>
---
xen/arch/x86/hvm/svm/intr.c | 18 ------------------
xen/arch/x86/hvm/svm/nestedsvm.c | 23 -----------------------
2 files changed, 41 deletions(-)
diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 4b0debfa9a2e..7f6cafb6db78 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -77,24 +77,6 @@ static void svm_enable_intr_window(struct vcpu *v, struct
hvm_intack intack)
ASSERT(intack.source != hvm_intsrc_none);
- if ( nestedhvm_enabled(v->domain) )
- {
- struct nestedvcpu *nv = &vcpu_nestedhvm(v);
-
- if ( nv->nv_vmentry_pending )
- {
- struct vmcb_struct *gvmcb = nv->nv_vvmcx;
-
- /* check if l1 guest injects interrupt into l2 guest via vintr.
- * return here or l2 guest looses interrupts, otherwise.
- */
- ASSERT(gvmcb != NULL);
- intr = vmcb_get_vintr(gvmcb);
- if ( intr.fields.irq )
- return;
- }
- }
-
TRACE(TRC_HVM_INTR_WINDOW, intack.vector, intack.source,
vmcb->event_inj.v ? vmcb->event_inj.vector : -1);
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 171b32be2416..edb3f444756d 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -1433,31 +1433,8 @@ void asmlinkage nsvm_vcpu_switch(void)
vmexit:
nestedsvm_vcpu_vmexit(v, regs, svm->ns_vmexit.exitcode);
nv->nv_vmexit_pending = 0;
- nv->nv_vmentry_pending = 0;
return;
}
-
- if ( nv->nv_vmentry_pending )
- {
- int ret;
- ASSERT(!nv->nv_vmexit_pending);
- ret = nsvm_vcpu_vmrun(v, regs);
- if ( ret )
- goto vmexit;
-
- ASSERT(nestedhvm_vcpu_in_guestmode(v));
- nv->nv_vmentry_pending = 0;
- }
-
- if ( nestedhvm_vcpu_in_guestmode(v) && nestedhvm_paging_mode_hap(v) )
- {
- /* In case left the l2 guest due to a physical interrupt (e.g. IPI)
- * that is not for the l1 guest then we continue running the l2 guest
- * but check if the nestedp2m is still valid.
- */
- if ( nv->nv_p2m == NULL )
- nestedsvm_vmcb_set_nestedp2m(v, nv->nv_vvmcx, nv->nv_n2vmcx);
- }
}
/* Interrupts, Virtual GIF */
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |