|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.4] x86/vmx: improvements to vmentry failure handling
commit 1b6738ad7832f8dbf44a76039c9fc8c44384bbbd
Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Tue Dec 15 15:50:47 2015 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Dec 15 15:50:47 2015 +0100
x86/vmx: improvements to vmentry failure handling
Combine the almost identical vm_launch_fail() and vm_resume_fail() into a
single vmx_vmentry_failure().
Re-save all GPRs so that domain_crash() prints the real register values,
rather than the stack frame of the vmx_vmentry_failure() call.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx>
master commit: bbcf0b218f64b1e3e2b66b0fbb623f51d9014e81
master date: 2015-11-03 18:14:02 +0100
---
xen/arch/x86/hvm/vmx/entry.S | 9 +++++----
xen/arch/x86/hvm/vmx/vmcs.c | 15 ++++-----------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
index 664ed83..3c8c749 100644
--- a/xen/arch/x86/hvm/vmx/entry.S
+++ b/xen/arch/x86/hvm/vmx/entry.S
@@ -102,14 +102,15 @@ UNLIKELY_END(realmode)
/*.Lvmx_resume:*/
VMRESUME
- sti
- call vm_resume_fail
- ud2
+ jmp .Lvmx_vmentry_fail
.Lvmx_launch:
VMLAUNCH
+
+.Lvmx_vmentry_fail:
sti
- call vm_launch_fail
+ SAVE_ALL
+ call vmx_vmentry_failure
ud2
ENTRY(vmx_asm_do_vmentry)
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 4a97563..89a5722 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1292,21 +1292,14 @@ void vmx_destroy_vmcs(struct vcpu *v)
free_xenheap_page(v->arch.hvm_vmx.msr_bitmap);
}
-void vm_launch_fail(void)
-{
- unsigned long error;
-
- __vmread(VM_INSTRUCTION_ERROR, &error);
- printk("<vm_launch_fail> error code %lx\n", error);
- domain_crash_synchronous();
-}
-
-void vm_resume_fail(void)
+void vmx_vmentry_failure(void)
{
+ struct vcpu *curr = current;
unsigned long error;
__vmread(VM_INSTRUCTION_ERROR, &error);
- printk("<vm_resume_fail> error code %lx\n", error);
+ printk(XENLOG_G_ERR "%pv: VM%s error: %#lx\n",
+ curr, curr->arch.hvm_vmx.launched ? "RESUME" : "LAUNCH", error);
domain_crash_synchronous();
}
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.4
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |