Module Name: src
Committed By: maxv
Date: Sat Aug 22 10:59:05 UTC 2020
Modified Files:
src/sys/dev/nvmm/x86: nvmm_x86_svm.c
Log Message:
nvmm-x86-svm: dedup code
To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 src/sys/dev/nvmm/x86/nvmm_x86_svm.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/nvmm/x86/nvmm_x86_svm.c
diff -u src/sys/dev/nvmm/x86/nvmm_x86_svm.c:1.70 src/sys/dev/nvmm/x86/nvmm_x86_svm.c:1.71
--- src/sys/dev/nvmm/x86/nvmm_x86_svm.c:1.70 Thu Aug 20 11:09:56 2020
+++ src/sys/dev/nvmm/x86/nvmm_x86_svm.c Sat Aug 22 10:59:05 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: nvmm_x86_svm.c,v 1.70 2020/08/20 11:09:56 maxv Exp $ */
+/* $NetBSD: nvmm_x86_svm.c,v 1.71 2020/08/22 10:59:05 maxv Exp $ */
/*
* Copyright (c) 2018-2020 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.70 2020/08/20 11:09:56 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_svm.c,v 1.71 2020/08/22 10:59:05 maxv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1022,18 +1022,11 @@ svm_exit_cpuid(struct nvmm_machine *mach
struct svm_cpudata *cpudata = vcpu->cpudata;
struct nvmm_vcpu_conf_cpuid *cpuid;
uint64_t eax, ecx;
- u_int descs[4];
size_t i;
eax = cpudata->vmcb->state.rax;
ecx = cpudata->gprs[NVMM_X64_GPR_RCX];
- x86_cpuid2(eax, ecx, descs);
-
- cpudata->vmcb->state.rax = descs[0];
- cpudata->gprs[NVMM_X64_GPR_RBX] = descs[1];
- cpudata->gprs[NVMM_X64_GPR_RCX] = descs[2];
- cpudata->gprs[NVMM_X64_GPR_RDX] = descs[3];
-
+ svm_inkernel_exec_cpuid(cpudata, eax, ecx);
svm_inkernel_handle_cpuid(vcpu, eax, ecx);
for (i = 0; i < SVM_NCPUIDS; i++) {