This commit is contained in:
Masato Imai
2025-08-05 13:33:52 +00:00
parent ac21f36624
commit ff14f69742
3 changed files with 7 additions and 7 deletions

View File

@ -158,7 +158,7 @@ pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
info!("Interrupts enabled");
let mut vcpu = vmm::get_vcpu(&mut bitmap_table).unwrap();
vcpu.run();
vcpu.run().unwrap();
info!("VCpu initialized");

View File

@ -18,7 +18,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
let mut pin_exec_ctrl = vmcs::controls::PinBasedVmExecutionControls::from(raw_pin_exec_ctrl);
pin_exec_ctrl.set_external_interrupt_exiting(false);
pin_exec_ctrl.write();
pin_exec_ctrl.write()?;
let mut raw_primary_exec_ctrl =
u32::from(vmcs::controls::PrimaryProcessorBasedVmExecutionControls::read()?);
@ -40,7 +40,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
primary_exec_ctrl.set_unconditional_io(false);
primary_exec_ctrl.set_use_io_bitmap(false); // TODO: true
primary_exec_ctrl.write();
primary_exec_ctrl.write()?;
let mut raw_secondary_exec_ctrl =
u32::from(vmcs::controls::SecondaryProcessorBasedVmExecutionControls::read()?);
@ -59,7 +59,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
secondary_exec_ctrl.set_unrestricted_guest(false); //TODO: true
secondary_exec_ctrl.set_virtualize_apic_accesses(false); // TODO: true
secondary_exec_ctrl.write();
secondary_exec_ctrl.write()?;
vmwrite(0x6000, u64::MAX)?;
vmwrite(0x6002, u64::MAX)?;
@ -84,7 +84,7 @@ pub fn setup_entry_controls() -> Result<(), &'static str> {
entry_ctrl.set_load_ia32_efer(true);
entry_ctrl.set_load_ia32_pat(true);
entry_ctrl.write();
entry_ctrl.write()?;
Ok(())
}
@ -108,7 +108,7 @@ pub fn setup_exit_controls() -> Result<(), &'static str> {
exit_ctrl.set_load_ia32_efer(true);
exit_ctrl.set_load_ia32_pat(true);
exit_ctrl.write();
exit_ctrl.write()?;
vmwrite(0x4004, 1u64 << 6)?; // EXCEPTION_BITMAP

View File

@ -25,7 +25,7 @@ impl IntelVCpu {
fn activate(&mut self) -> Result<(), &'static str> {
let revision_id = common::read_msr(0x480) as u32;
self.vmcs.write_revision_id(revision_id);
self.vmcs.reset();
self.vmcs.reset()?;
controls::setup_exec_controls()?;
controls::setup_entry_controls()?;
controls::setup_exit_controls()?;