summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authormaxv <maxv@NetBSD.org>2018-12-13 16:28:10 +0000
committermaxv <maxv@NetBSD.org>2018-12-13 16:28:10 +0000
commit359af47fec2896f28653e69f4d8b55debfd84f1d (patch)
treeeb0b09fe345a560016ef7cc64cdacd5ada2edaab /sys/dev
parentbbe2937638c8a2d7f1e0c6a9662515a46ed6fa7d (diff)
Don't forget to advance the RIP after an XSETBV emulation.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/nvmm/x86/nvmm_x86_svm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/nvmm/x86/nvmm_x86_svm.c b/sys/dev/nvmm/x86/nvmm_x86_svm.c
index 5d385ab6c7f..d613ed2aee1 100644
--- a/sys/dev/nvmm/x86/nvmm_x86_svm.c
+++ b/sys/dev/nvmm/x86/nvmm_x86_svm.c
@@ -1,4 +1,4 @@
-/* $NetBSD: nvmm_x86_svm.c,v 1.6 2018/11/25 14:09:57 maxv Exp $ */
+/* $NetBSD: nvmm_x86_svm.c,v 1.7 2018/12/13 16:28:10 maxv Exp $ */
/*
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.6 2018/11/25 14:09:57 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.7 2018/12/13 16:28:10 maxv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -963,6 +963,7 @@ svm_exit_xsetbv(struct nvmm_machine *mach, struct nvmm_cpu *vcpu,
state->crs[NVMM_X64_CR_XCR0] = val;
+ cpudata->vmcb->state.rip = cpudata->vmcb->ctrl.nrip;
return;
error: