]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rust: vec: impl Default for Vec with any allocator
authorAlice Ryhl <aliceryhl@google.com>
Tue, 10 Jun 2025 10:31:56 +0000 (10:31 +0000)
committerDanilo Krummrich <dakr@kernel.org>
Wed, 11 Jun 2025 14:35:10 +0000 (16:35 +0200)
The implementation of Default is restricted to only work with kmalloc
vectors for no good reason. This means I have to use

mem::replace(&mut my_vec, KVVec::new())

in Rust Binder instead of `mem::take(&mut my_vec)`. Thus, expand the
impl of Default to work with any allocator including kvmalloc.

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Link: https://lore.kernel.org/r/20250610-vec-default-v1-1-7bb2c97d75a0@google.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/alloc/kvec.rs

index 1a0dd852a468ccda6ea1b521bc1e7dbc8d7fc79c..606616fc0e592f87264bf905c88ef44e19739c0e 100644 (file)
@@ -851,7 +851,7 @@ where
     }
 }
 
-impl<T> Default for KVec<T> {
+impl<T, A: Allocator> Default for Vec<T, A> {
     #[inline]
     fn default() -> Self {
         Self::new()