diff --git a/kernel/src/requests.rs b/kernel/src/requests.rs index 599a40d34..5e98d4a48 100644 --- a/kernel/src/requests.rs +++ b/kernel/src/requests.rs @@ -71,7 +71,12 @@ pub fn update_mappings() -> Result<(), SvsmError> { let mut ret = Ok(()); if !locked.needs_update() { - return Ok(()); + // If there is no VMSA, then the update request must be considered a + // failure even though no work was required. + return match locked.vmsa_phys() { + Some(_) => Ok(()), + None => Err(SvsmError::MissingVMSA), + }; } cpu.unmap_guest_vmsa();