mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 13:45:20 +00:00
Compare commits
3 Commits
16e1449f1e
...
dbe67fca7f
Author | SHA1 | Date | |
---|---|---|---|
|
dbe67fca7f | ||
|
d3fc12b160 | ||
|
d73d3203dc |
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -385,9 +385,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cpufeatures"
|
name = "cpufeatures"
|
||||||
version = "0.2.8"
|
version = "0.2.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
|
checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
4
fuzz/Cargo.lock
generated
4
fuzz/Cargo.lock
generated
@ -151,9 +151,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.82"
|
version = "1.0.83"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
|
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jobserver",
|
"jobserver",
|
||||||
"libc",
|
"libc",
|
||||||
|
@ -562,6 +562,18 @@ impl cpu::Vcpu for MshvVcpu {
|
|||||||
debug!("Exception Info {:?}", { info.exception_vector });
|
debug!("Exception Info {:?}", { info.exception_vector });
|
||||||
Ok(cpu::VmExit::Ignore)
|
Ok(cpu::VmExit::Ignore)
|
||||||
}
|
}
|
||||||
|
hv_message_type_HVMSG_X64_APIC_EOI => {
|
||||||
|
let info = x.to_apic_eoi_info().unwrap();
|
||||||
|
// The kernel should dispatch the EOI to the correct thread.
|
||||||
|
// Check the VP index is the same as the one we have.
|
||||||
|
assert!(info.vp_index == self.vp_index as u32);
|
||||||
|
// The interrupt vector in info is u32, but x86 only supports 256 vectors.
|
||||||
|
// There is no good way to recover from this if the hypervisor messes around.
|
||||||
|
// Just unwrap.
|
||||||
|
Ok(cpu::VmExit::IoapicEoi(
|
||||||
|
info.interrupt_vector.try_into().unwrap(),
|
||||||
|
))
|
||||||
|
}
|
||||||
exit => Err(cpu::HypervisorCpuError::RunVcpu(anyhow!(
|
exit => Err(cpu::HypervisorCpuError::RunVcpu(anyhow!(
|
||||||
"Unhandled VCPU exit {:?}",
|
"Unhandled VCPU exit {:?}",
|
||||||
exit
|
exit
|
||||||
|
Loading…
Reference in New Issue
Block a user