From 3d3f931ccd4410fb238b8bda6cb6394c703117e2 Mon Sep 17 00:00:00 2001 From: memN0ps <89628341+memN0ps@users.noreply.github.com> Date: Tue, 27 Feb 2024 02:05:40 +1300 Subject: [PATCH] Fix cpuid maybe? --- hypervisor/src/intel/vmexit/init.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hypervisor/src/intel/vmexit/init.rs b/hypervisor/src/intel/vmexit/init.rs index 4239fec..6904ae4 100644 --- a/hypervisor/src/intel/vmexit/init.rs +++ b/hypervisor/src/intel/vmexit/init.rs @@ -111,8 +111,9 @@ pub fn handle_init_signal(guest_registers: &mut GuestRegisters) -> ExitType { // Execute CPUID instruction on the host and retrieve the result // let leaf = CpuidLeaf::FeatureInformation; - let cpuid_result = cpuid!(leaf); - let extended_model_id = (cpuid_result.edx >> 16) & 0xF; + let sub_leaf = guest_registers.rcx; + let cpuid_result = cpuid!(leaf, sub_leaf); + let extended_model_id = cpuid_result.ecx; guest_registers.rdx = 0x600 | ((extended_model_id as u64) << 16); guest_registers.rax = 0x0; guest_registers.rbx = 0x0;