From 4521fd539ee4a7cebf781c6c54898e1bad8745b9 Mon Sep 17 00:00:00 2001 From: Steven Malis Date: Thu, 23 Jul 2026 15:31:49 -0400 Subject: [PATCH 1/2] virt_kvm: Set flags to accept values in set_activity --- vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs b/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs index daf06ead66..92970f9ce8 100644 --- a/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs +++ b/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs @@ -349,7 +349,7 @@ impl AccessVpState for KvmVpStateAccess<'_, '_> { pad: 0, }, sipi_vector: 0, - flags: 0, + flags: kvm::KVM_VCPUEVENT_VALID_NMI_PENDING | kvm::KVM_VCPUEVENT_VALID_SHADOW, exception_has_payload: 0, exception_payload: 0, ..Default::default() From d5e6d3c8a70af62d18f0f4e74a85ec9ab78eff78 Mon Sep 17 00:00:00 2001 From: Steven Malis Date: Thu, 23 Jul 2026 15:36:02 -0400 Subject: [PATCH 2/2] better --- vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs b/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs index 92970f9ce8..9a5adbc6b1 100644 --- a/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs +++ b/vmm_core/virt_kvm/src/arch/x86_64/vp_state.rs @@ -328,6 +328,14 @@ impl AccessVpState for KvmVpStateAccess<'_, '_> { }; self.kvm().set_mp_state(state)?; + let mut event_flags = 0; + if value.nmi_pending { + event_flags |= kvm::KVM_VCPUEVENT_VALID_NMI_PENDING; + } + if value.interrupt_shadow { + event_flags |= kvm::KVM_VCPUEVENT_VALID_SHADOW; + } + let mut events = kvm::kvm_vcpu_events { exception: kvm::kvm_vcpu_events__bindgen_ty_1 { injected: 0, @@ -349,7 +357,7 @@ impl AccessVpState for KvmVpStateAccess<'_, '_> { pad: 0, }, sipi_vector: 0, - flags: kvm::KVM_VCPUEVENT_VALID_NMI_PENDING | kvm::KVM_VCPUEVENT_VALID_SHADOW, + flags: event_flags, exception_has_payload: 0, exception_payload: 0, ..Default::default()