From 4527afc2a2699c8454e6e6554e37275d2002366d Mon Sep 17 00:00:00 2001 From: Jon Lange Date: Thu, 24 Oct 2024 10:13:55 -0700 Subject: [PATCH] sev: remove SNP/ES checks The use of the SNP platform assumes that SEV-ES and SEV-SNP are always enabled (this is enforced during SEV status register checks). There is no longer any reason to make decisions at runtime based on whether ES or SNP is available. Signed-off-by: Jon Lange --- kernel/src/sev/ghcb.rs | 17 +++++++---------- kernel/src/sev/mod.rs | 1 - kernel/src/sev/status.rs | 8 -------- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/kernel/src/sev/ghcb.rs b/kernel/src/sev/ghcb.rs index 26c2ddfb6..ff0d76888 100644 --- a/kernel/src/sev/ghcb.rs +++ b/kernel/src/sev/ghcb.rs @@ -15,7 +15,6 @@ use crate::mm::validate::{ use crate::mm::virt_to_phys; use crate::platform::PageStateChangeOp; use crate::sev::hv_doorbell::HVDoorbell; -use crate::sev::sev_snp_enabled; use crate::sev::utils::raw_vmgexit; use crate::types::{Bytes, PageSize, GUEST_VMPL, PAGE_SIZE_2M}; use crate::utils::MemoryRegion; @@ -138,17 +137,15 @@ impl GhcbPage { let vaddr = page.vaddr(); let paddr = virt_to_phys(vaddr); - if sev_snp_enabled() { - // Make page invalid - pvalidate(vaddr, PageSize::Regular, PvalidateOp::Invalid)?; + // Make page invalid + pvalidate(vaddr, PageSize::Regular, PvalidateOp::Invalid)?; - // Let the Hypervisor take the page back - invalidate_page_msr(paddr)?; + // Let the Hypervisor take the page back + invalidate_page_msr(paddr)?; - // Needs guarding for Stage2 GHCB - if valid_bitmap_valid_addr(paddr) { - valid_bitmap_clear_valid_4k(paddr); - } + // Needs guarding for Stage2 GHCB + if valid_bitmap_valid_addr(paddr) { + valid_bitmap_clear_valid_4k(paddr); } // Map page unencrypted diff --git a/kernel/src/sev/mod.rs b/kernel/src/sev/mod.rs index 02d3c50ac..1a9ce874d 100644 --- a/kernel/src/sev/mod.rs +++ b/kernel/src/sev/mod.rs @@ -17,6 +17,5 @@ pub use msr_protocol::init_hypervisor_ghcb_features; pub use secrets_page::{secrets_page, secrets_page_mut, SecretsPage, VMPCK_SIZE}; pub use status::sev_status_init; pub use status::sev_status_verify; -pub use status::{sev_es_enabled, sev_snp_enabled}; pub use utils::{pvalidate, pvalidate_range, PvalidateOp, SevSnpError}; pub use utils::{rmp_adjust, RMPFlags}; diff --git a/kernel/src/sev/status.rs b/kernel/src/sev/status.rs index 18c07eead..06a0503b1 100644 --- a/kernel/src/sev/status.rs +++ b/kernel/src/sev/status.rs @@ -146,14 +146,6 @@ pub fn sev_status_init() { .expect("Already initialized SEV flags"); } -pub fn sev_es_enabled() -> bool { - sev_flags().contains(SEVStatusFlags::SEV_ES) -} - -pub fn sev_snp_enabled() -> bool { - sev_flags().contains(SEVStatusFlags::SEV_SNP) -} - pub fn vtom_enabled() -> bool { sev_flags().contains(SEVStatusFlags::VTOM) }