]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rust: debugfs: Implement Reader for Mutex<T> only when T is Unpin
authorBoqun Feng <boqun.feng@gmail.com>
Wed, 22 Oct 2025 03:42:37 +0000 (23:42 -0400)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 22 Oct 2025 13:21:51 +0000 (15:21 +0200)
Since we are going to make `Mutex<T>` structurally pin the data (i.e.
`T`), therefore `.lock()` function only returns a `Guard` that can
dereference a mutable reference to `T` if only `T` is `Unpin`, therefore
restrict the impl `Reader` block of `Mutex<T>` to that.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patch.msgid.link/20251022034237.70431-1-boqun.feng@gmail.com
rust/kernel/debugfs/traits.rs

index ab009eb254b32127e93ef4523c548140d6cf29d3..ba7ec5a900b8fb2ad32284e52e18b42794af8b86 100644 (file)
@@ -50,7 +50,7 @@ pub trait Reader {
     fn read_from_slice(&self, reader: &mut UserSliceReader) -> Result;
 }
 
-impl<T: FromStr> Reader for Mutex<T> {
+impl<T: FromStr + Unpin> Reader for Mutex<T> {
     fn read_from_slice(&self, reader: &mut UserSliceReader) -> Result {
         let mut buf = [0u8; 128];
         if reader.len() > buf.len() {