From f9f07b49d2c3047be4aceed02b7a71a67a568a17 Mon Sep 17 00:00:00 2001 From: Ruben Hakobyan Date: Mon, 13 Jul 2026 16:59:57 -0700 Subject: [PATCH] vmm: igvm: Use kvm-bindings for SNP page types Replace the hard-coded KVM SNP page type constants with the KVM_SEV_SNP_PAGE_TYPE_* values from kvm-bindings. Signed-off-by: Ruben Hakobyan --- vmm/src/igvm/igvm_loader.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/vmm/src/igvm/igvm_loader.rs b/vmm/src/igvm/igvm_loader.rs index ae3f4a88d..31d04974c 100644 --- a/vmm/src/igvm/igvm_loader.rs +++ b/vmm/src/igvm/igvm_loader.rs @@ -12,6 +12,11 @@ use std::sync::{Arc, Mutex}; use std::{ffi, io}; use hypervisor::HypervisorType; +#[cfg(feature = "kvm")] +use hypervisor::kvm::kvm_bindings::{ + KVM_SEV_SNP_PAGE_TYPE_CPUID, KVM_SEV_SNP_PAGE_TYPE_NORMAL, KVM_SEV_SNP_PAGE_TYPE_SECRETS, + KVM_SEV_SNP_PAGE_TYPE_UNMEASURED, KVM_SEV_SNP_PAGE_TYPE_ZERO, +}; #[cfg(feature = "sev_snp")] use igvm::IgvmInitializationHeader; use igvm::snp_defs::SevVmsa; @@ -124,18 +129,6 @@ pub enum Error { }, } -// KVM SNP page types — linux/arch/x86/include/uapi/asm/sev-guest.h -#[cfg(feature = "kvm")] -const KVM_SNP_PAGE_TYPE_NORMAL: u32 = 1; -#[cfg(feature = "kvm")] -const KVM_SNP_PAGE_TYPE_ZERO: u32 = 3; -#[cfg(feature = "kvm")] -const KVM_SNP_PAGE_TYPE_UNMEASURED: u32 = 4; -#[cfg(feature = "kvm")] -const KVM_SNP_PAGE_TYPE_SECRETS: u32 = 5; -#[cfg(feature = "kvm")] -const KVM_SNP_PAGE_TYPE_CPUID: u32 = 6; - // Consolidated page type/size configuration per hypervisor. struct PageTypeConfig { isolated_page_size_4kb: u32, @@ -289,11 +282,11 @@ pub fn load_igvm( #[cfg(feature = "kvm")] HypervisorType::Kvm => PageTypeConfig { isolated_page_size_4kb: HV_PAGE_SIZE as u32, - normal: KVM_SNP_PAGE_TYPE_NORMAL, - zero: KVM_SNP_PAGE_TYPE_ZERO, - unmeasured: KVM_SNP_PAGE_TYPE_UNMEASURED, - cpuid: KVM_SNP_PAGE_TYPE_CPUID, - secrets: KVM_SNP_PAGE_TYPE_SECRETS, + normal: KVM_SEV_SNP_PAGE_TYPE_NORMAL, + zero: KVM_SEV_SNP_PAGE_TYPE_ZERO, + unmeasured: KVM_SEV_SNP_PAGE_TYPE_UNMEASURED, + cpuid: KVM_SEV_SNP_PAGE_TYPE_CPUID, + secrets: KVM_SEV_SNP_PAGE_TYPE_SECRETS, // KVM doesn't import a VMSA page, it instead constructs it internally vmsa: None, },