From 3fe7d61a0225cee48910edc0b09b47f35f3b245b Mon Sep 17 00:00:00 2001 From: Michael Zhao Date: Mon, 30 May 2022 20:45:07 +0800 Subject: [PATCH] hypervisor: Remove some redundant parameters Signed-off-by: Michael Zhao --- hypervisor/src/arch/aarch64/gic.rs | 4 ++-- hypervisor/src/kvm/aarch64/gic/mod.rs | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/hypervisor/src/arch/aarch64/gic.rs b/hypervisor/src/arch/aarch64/gic.rs index 2ea8550e1..1d23d764d 100644 --- a/hypervisor/src/arch/aarch64/gic.rs +++ b/hypervisor/src/arch/aarch64/gic.rs @@ -49,8 +49,8 @@ pub trait Vgic: Send + Sync { fn as_any_concrete_mut(&mut self) -> &mut dyn Any; /// Save the state of GICv3ITS. - fn state(&self, gicr_typers: &[u64]) -> Result; + fn state(&self) -> Result; /// Restore the state of GICv3ITS. - fn set_state(&mut self, gicr_typers: &[u64], state: &GicState) -> Result<()>; + fn set_state(&mut self, state: &GicState) -> Result<()>; } diff --git a/hypervisor/src/kvm/aarch64/gic/mod.rs b/hypervisor/src/kvm/aarch64/gic/mod.rs index 6b7a0cddc..176b8fb84 100644 --- a/hypervisor/src/kvm/aarch64/gic/mod.rs +++ b/hypervisor/src/kvm/aarch64/gic/mod.rs @@ -341,14 +341,16 @@ impl Vgic for KvmGicV3Its { } /// Save the state of GICv3ITS. - fn state(&self, gicr_typers: &[u64]) -> Result { + fn state(&self) -> Result { + let gicr_typers = self.gicr_typers.clone(); + let gicd_ctlr = read_ctlr(self.device())?; let dist_state = get_dist_regs(self.device())?; - let rdist_state = get_redist_regs(self.device(), gicr_typers)?; + let rdist_state = get_redist_regs(self.device(), &gicr_typers)?; - let icc_state = get_icc_regs(self.device(), gicr_typers)?; + let icc_state = get_icc_regs(self.device(), &gicr_typers)?; let its_baser_state: [u64; 8] = [0; 8]; for i in 0..8 { @@ -421,14 +423,16 @@ impl Vgic for KvmGicV3Its { } /// Restore the state of GICv3ITS. - fn set_state(&mut self, gicr_typers: &[u64], state: &Gicv3ItsState) -> Result<()> { + fn set_state(&mut self, state: &Gicv3ItsState) -> Result<()> { + let gicr_typers = self.gicr_typers.clone(); + write_ctlr(self.device(), state.gicd_ctlr)?; set_dist_regs(self.device(), &state.dist)?; - set_redist_regs(self.device(), gicr_typers, &state.rdist)?; + set_redist_regs(self.device(), &gicr_typers, &state.rdist)?; - set_icc_regs(self.device(), gicr_typers, &state.icc)?; + set_icc_regs(self.device(), &gicr_typers, &state.icc)?; //Restore GICv3ITS registers gicv3_its_attr_access(