hypervisor: aarch64: drop set/has_vcpu_attr

This avoids the need for exposing DeviceAttr.

Signed-off-by: Wei Liu <liuwe@microsoft.com>
This commit is contained in:
Wei Liu 2022-07-20 20:33:10 +00:00 committed by Liu Wei
parent eca6609dbb
commit 5e2c70b87f
2 changed files with 5 additions and 35 deletions

View File

@ -19,8 +19,6 @@ use crate::arch::x86::{
#[cfg(feature = "tdx")] #[cfg(feature = "tdx")]
use crate::kvm::{TdxExitDetails, TdxExitStatus}; use crate::kvm::{TdxExitDetails, TdxExitStatus};
use crate::CpuState; use crate::CpuState;
#[cfg(target_arch = "aarch64")]
use crate::DeviceAttr;
use crate::MpState; use crate::MpState;
use thiserror::Error; use thiserror::Error;
#[cfg(all(feature = "kvm", target_arch = "x86_64"))] #[cfg(all(feature = "kvm", target_arch = "x86_64"))]
@ -276,16 +274,6 @@ pub trait Vcpu: Send + Sync {
/// Returns the vCPU general purpose registers. /// Returns the vCPU general purpose registers.
/// ///
fn get_regs(&self) -> Result<StandardRegisters>; fn get_regs(&self) -> Result<StandardRegisters>;
#[cfg(target_arch = "aarch64")]
///
/// Sets vcpu attribute
///
fn set_vcpu_attr(&self, attr: &DeviceAttr) -> Result<()>;
#[cfg(target_arch = "aarch64")]
///
/// Check if vcpu has attribute.
///
fn has_vcpu_attr(&self, attr: &DeviceAttr) -> Result<()>;
/// ///
/// Sets the vCPU general purpose registers. /// Sets the vCPU general purpose registers.
/// ///

View File

@ -1279,26 +1279,6 @@ impl cpu::Vcpu for KvmVcpu {
Ok(()) Ok(())
} }
#[cfg(target_arch = "aarch64")]
///
/// Set attribute for vcpu.
///
fn set_vcpu_attr(&self, attr: &DeviceAttr) -> cpu::Result<()> {
self.fd
.set_device_attr(attr)
.map_err(|e| cpu::HypervisorCpuError::SetVcpuAttribute(e.into()))
}
#[cfg(target_arch = "aarch64")]
///
/// Check if vcpu has a certain attribute.
///
fn has_vcpu_attr(&self, attr: &DeviceAttr) -> cpu::Result<()> {
self.fd
.has_device_attr(attr)
.map_err(|e| cpu::HypervisorCpuError::HasVcpuAttribute(e.into()))
}
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]
/// ///
/// Returns the vCPU special registers. /// Returns the vCPU special registers.
@ -2079,7 +2059,7 @@ impl cpu::Vcpu for KvmVcpu {
addr: 0x0, addr: 0x0,
flags: 0, flags: 0,
}; };
self.has_vcpu_attr(&cpu_attr).is_ok() self.fd.has_device_attr(&cpu_attr).is_ok()
} }
#[cfg(target_arch = "aarch64")] #[cfg(target_arch = "aarch64")]
fn init_pmu(&self, irq: u32) -> cpu::Result<()> { fn init_pmu(&self, irq: u32) -> cpu::Result<()> {
@ -2095,9 +2075,11 @@ impl cpu::Vcpu for KvmVcpu {
addr: &irq as *const u32 as u64, addr: &irq as *const u32 as u64,
flags: 0, flags: 0,
}; };
self.set_vcpu_attr(&cpu_attr_irq) self.fd
.set_device_attr(&cpu_attr_irq)
.map_err(|_| cpu::HypervisorCpuError::InitializePmu)?; .map_err(|_| cpu::HypervisorCpuError::InitializePmu)?;
self.set_vcpu_attr(&cpu_attr) self.fd
.set_device_attr(&cpu_attr)
.map_err(|_| cpu::HypervisorCpuError::InitializePmu) .map_err(|_| cpu::HypervisorCpuError::InitializePmu)
} }
} }