hypervisor, vmm: Add default Hypervisor::check_required_extensions()

This allows the removal of KVM specific compile time checks on this
function.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford 2021-05-19 13:09:13 +00:00 committed by Sebastien Boeuf
parent 2439625785
commit 0cf9218d3f
2 changed files with 6 additions and 5 deletions

View File

@ -83,11 +83,12 @@ pub trait Hypervisor: Send + Sync {
/// Get the supported CpuID /// Get the supported CpuID
/// ///
fn get_cpuid(&self) -> Result<CpuId>; fn get_cpuid(&self) -> Result<CpuId>;
#[cfg(not(feature = "mshv"))]
/// ///
/// Check particular extensions if any /// Check particular extensions if any
/// ///
fn check_required_extensions(&self) -> Result<()>; fn check_required_extensions(&self) -> Result<()> {
Ok(())
}
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]
/// ///
/// Retrieve the list of MSRs supported by the hypervisor. /// Retrieve the list of MSRs supported by the hypervisor.

View File

@ -674,7 +674,7 @@ impl Vm {
) -> Result<Self> { ) -> Result<Self> {
#[cfg(feature = "tdx")] #[cfg(feature = "tdx")]
let tdx_enabled = config.lock().unwrap().tdx.is_some(); let tdx_enabled = config.lock().unwrap().tdx.is_some();
#[cfg(all(feature = "kvm", target_arch = "x86_64"))] #[cfg(target_arch = "x86_64")]
hypervisor.check_required_extensions().unwrap(); hypervisor.check_required_extensions().unwrap();
#[cfg(feature = "tdx")] #[cfg(feature = "tdx")]
let vm = hypervisor let vm = hypervisor
@ -746,7 +746,7 @@ impl Vm {
hypervisor: Arc<dyn hypervisor::Hypervisor>, hypervisor: Arc<dyn hypervisor::Hypervisor>,
activate_evt: EventFd, activate_evt: EventFd,
) -> Result<Self> { ) -> Result<Self> {
#[cfg(all(feature = "kvm", target_arch = "x86_64"))] #[cfg(target_arch = "x86_64")]
hypervisor.check_required_extensions().unwrap(); hypervisor.check_required_extensions().unwrap();
let vm = hypervisor.create_vm().unwrap(); let vm = hypervisor.create_vm().unwrap();
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]
@ -799,7 +799,7 @@ impl Vm {
hypervisor: Arc<dyn hypervisor::Hypervisor>, hypervisor: Arc<dyn hypervisor::Hypervisor>,
activate_evt: EventFd, activate_evt: EventFd,
) -> Result<Self> { ) -> Result<Self> {
#[cfg(all(feature = "kvm", target_arch = "x86_64"))] #[cfg(target_arch = "x86_64")]
hypervisor.check_required_extensions().unwrap(); hypervisor.check_required_extensions().unwrap();
let vm = hypervisor.create_vm().unwrap(); let vm = hypervisor.create_vm().unwrap();
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]