From 7d24608bcfb233693a63231051e4ca2e8116b58a Mon Sep 17 00:00:00 2001 From: Muminul Islam Date: Wed, 29 Apr 2026 15:34:40 -0700 Subject: [PATCH] vmm: igvm: use correct MSHV page types for CPUID and secrets The PageTypeConfig for MSHV incorrectly mapped the cpuid field to HV_ISOLATED_PAGE_TYPE_NORMAL (0) and the secrets field to HV_ISOLATED_PAGE_TYPE_UNMEASURED (3). The correct MSHV page type constants are: - CPUID pages: HV_ISOLATED_PAGE_TYPE_CPUID (5) - Secrets pages: HV_ISOLATED_PAGE_TYPE_SECRETS (4) This was introduced in commit 75ed2c9f903f ("vmm: add KVM SEV-SNP support to IGVM loader") which abstracted page types into a PageTypeConfig struct but assigned wrong values for the MSHV variant. Using incorrect page types causes the MSHV hypervisor to reject or mishandle isolated page imports, leading to guest boot failure. Assisted-by: Claude:Opus-4.6 Signed-off-by: Muminul Islam --- vmm/src/igvm/igvm_loader.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vmm/src/igvm/igvm_loader.rs b/vmm/src/igvm/igvm_loader.rs index 5cdb0d01b..790d04d4f 100644 --- a/vmm/src/igvm/igvm_loader.rs +++ b/vmm/src/igvm/igvm_loader.rs @@ -232,8 +232,8 @@ pub fn load_igvm( isolated_page_size_4kb: mshv_bindings::hv_isolated_page_size_HV_ISOLATED_PAGE_SIZE_4KB, normal: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_NORMAL, unmeasured: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_UNMEASURED, - cpuid: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_NORMAL, - secrets: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_UNMEASURED, + cpuid: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_CPUID, + secrets: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_SECRETS, vmsa: mshv_bindings::hv_isolated_page_type_HV_ISOLATED_PAGE_TYPE_VMSA, }, #[cfg(feature = "kvm")]