[PATCH 10/10] rust: qdev: make reset take a shared reference

Paolo Bonzini posted 10 patches 2 weeks, 5 days ago
[PATCH 10/10] rust: qdev: make reset take a shared reference
Posted by Paolo Bonzini 2 weeks, 5 days ago
Because register reset is within a borrow_mut() call, reset
does not need anymore a mut reference to the PL011State.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 rust/hw/char/pl011/src/device.rs | 4 ++--
 rust/qemu-api/src/qdev.rs        | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs
index af0f451deb2..019c1617807 100644
--- a/rust/hw/char/pl011/src/device.rs
+++ b/rust/hw/char/pl011/src/device.rs
@@ -164,7 +164,7 @@ fn vmsd() -> Option<&'static VMStateDescription> {
         Some(&device_class::VMSTATE_PL011)
     }
     const REALIZE: Option<fn(&mut Self)> = Some(Self::realize);
-    const RESET: Option<fn(&mut Self)> = Some(Self::reset);
+    const RESET: Option<fn(&Self)> = Some(Self::reset);
 }
 
 impl PL011Registers {
@@ -604,7 +604,7 @@ pub fn realize(&mut self) {
         }
     }
 
-    pub fn reset(&mut self) {
+    pub fn reset(&self) {
         self.regs.borrow_mut().reset();
     }
 
diff --git a/rust/qemu-api/src/qdev.rs b/rust/qemu-api/src/qdev.rs
index 686054e737a..4658409bebb 100644
--- a/rust/qemu-api/src/qdev.rs
+++ b/rust/qemu-api/src/qdev.rs
@@ -30,7 +30,7 @@ pub trait DeviceImpl {
     ///
     /// Rust does not yet support the three-phase reset protocol; this is
     /// usually okay for leaf classes.
-    const RESET: Option<fn(&mut Self)> = None;
+    const RESET: Option<fn(&Self)> = None;
 
     /// An array providing the properties that the user can set on the
     /// device.  Not a `const` because referencing statics in constants
-- 
2.47.1
Re: [PATCH 10/10] rust: qdev: make reset take a shared reference
Posted by Zhao Liu 1 week, 6 days ago
On Fri, Jan 17, 2025 at 10:26:57AM +0100, Paolo Bonzini wrote:
> Date: Fri, 17 Jan 2025 10:26:57 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH 10/10] rust: qdev: make reset take a shared reference
> X-Mailer: git-send-email 2.47.1
> 
> Because register reset is within a borrow_mut() call, reset
> does not need anymore a mut reference to the PL011State.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  rust/hw/char/pl011/src/device.rs | 4 ++--
>  rust/qemu-api/src/qdev.rs        | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>