rust: phy: implement `Send` for `Registration`
authorWedson Almeida Filho <walmeida@microsoft.com>
Thu, 28 Mar 2024 19:54:53 +0000 (16:54 -0300)
committerMiguel Ojeda <ojeda@kernel.org>
Mon, 22 Apr 2024 22:14:05 +0000 (00:14 +0200)
In preparation for requiring `Send` for `Module` implementations in the
next patch.

Cc: FUJITA Tomonori <fujita.tomonori@gmail.com>
Cc: Trevor Gross <tmgross@umich.edu>
Cc: netdev@vger.kernel.org
Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240328195457.225001-2-wedsonaf@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/kernel/net/phy.rs

index 96e09c6e8530b4d108e6a664e93ab41436c797dc..265d0e1c13710a53a9f9d0b5af12b24402eb4741 100644 (file)
@@ -640,6 +640,10 @@ pub struct Registration {
     drivers: Pin<&'static mut [DriverVTable]>,
 }
 
+// SAFETY: The only action allowed in a `Registration` instance is dropping it, which is safe to do
+// from any thread because `phy_drivers_unregister` can be called from any thread context.
+unsafe impl Send for Registration {}
+
 impl Registration {
     /// Registers a PHY driver.
     pub fn register(