diff --git a/hypervisor/src/mshv/mod.rs b/hypervisor/src/mshv/mod.rs index 82ba89ef3..91cf40119 100644 --- a/hypervisor/src/mshv/mod.rs +++ b/hypervisor/src/mshv/mod.rs @@ -583,8 +583,14 @@ impl cpu::Vcpu for MshvVcpu { /// /// X86 specific call to setup the CPUID registers. /// - fn set_cpuid2(&self, _cpuid: &[CpuIdEntry]) -> cpu::Result<()> { - Ok(()) + fn set_cpuid2(&self, cpuid: &[CpuIdEntry]) -> cpu::Result<()> { + let cpuid: Vec = cpuid.iter().map(|e| (*e).into()).collect(); + let mshv_cpuid = ::from_entries(&cpuid) + .map_err(|_| cpu::HypervisorCpuError::SetCpuid(anyhow!("failed to create CpuId")))?; + + self.fd + .register_intercept_result_cpuid(&mshv_cpuid) + .map_err(|e| cpu::HypervisorCpuError::SetCpuid(e.into())) } #[cfg(target_arch = "x86_64")] ///