rust: alloc: add Vec::remove
authorAlice Ryhl <aliceryhl@google.com>
Fri, 2 May 2025 13:19:34 +0000 (13:19 +0000)
committerDanilo Krummrich <dakr@kernel.org>
Wed, 7 May 2025 16:40:02 +0000 (18:40 +0200)
commit294a7ecbdf0a5d65c6df1287c5d56241e9331cf2
treef65ebee141e217d34f474106b2c3372c207b0afe
parent9f140894e72735f034fdc0e963d0550ef03c6f44
rust: alloc: add Vec::remove

This is needed by Rust Binder in the range allocator, and by upcoming
GPU drivers during firmware initialization.

Panics in the kernel are best avoided when possible, so an error is
returned if the index is out of bounds. An error type is used rather
than just returning Option<T> to let callers handle errors with ?.

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Link: https://lore.kernel.org/r/20250502-vec-methods-v5-6-06d20ad9366f@google.com
[ Remove `# Panics` section; `Vec::remove() handles the error properly.`
  - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/alloc/kvec.rs
rust/kernel/alloc/kvec/errors.rs