mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-11-05 03:21:13 +00:00
vmm: config: Ensure shared memory is enabled if using user-devices
Correct operation of user devices (vfio-user) requires shared memory so flag this to prevent it from failing in strange ways. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
b28063a7b4
commit
3efccd0fef
@ -138,6 +138,8 @@ pub enum ValidationError {
|
||||
TdxKernelSpecified,
|
||||
// Insuffient vCPUs for queues
|
||||
TooManyQueues,
|
||||
// Need shared memory for vfio-user
|
||||
UserDevicesRequireSharedMemory,
|
||||
}
|
||||
|
||||
type ValidationResult<T> = std::result::Result<T, ValidationError>;
|
||||
@ -185,6 +187,9 @@ impl fmt::Display for ValidationError {
|
||||
TooManyQueues => {
|
||||
write!(f, "Number of vCPUs is insufficient for number of queues")
|
||||
}
|
||||
UserDevicesRequireSharedMemory => {
|
||||
write!(f, "Using user devices requires using shared memory")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1905,6 +1910,11 @@ impl VmConfig {
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(user_devices) = &self.user_devices {
|
||||
if !user_devices.is_empty() && !self.memory.shared {
|
||||
return Err(ValidationError::UserDevicesRequireSharedMemory);
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user