summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlice Ryhl <aliceryhl@google.com>2025-11-11 14:23:34 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-26 13:26:59 +0100
commit2c8ad5cfc22dba7d0b3b3ddfec0a75d8ea4169c3 (patch)
tree5750031e68f06a81c3148a59b89f1b26daad5528
parent6c37bebd8c926ad01ef157c0d123633a203e5c0d (diff)
rust: list: add warning to List::remove docs about mem::take
The previous patches in this series illustrate why the List::remove method is really dangerous. I think the real takeaway here is to replace the linked lists with a different data structure without this unsafe footgun, but for now we fix the bugs and add a warning to the docs. Signed-off-by: Alice Ryhl <aliceryhl@google.com> Acked-by: Miguel Ojeda <ojeda@kernel.org> Link: https://patch.msgid.link/20251111-binder-fix-list-remove-v1-3-8ed14a0da63d@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--rust/kernel/list.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/rust/kernel/list.rs b/rust/kernel/list.rs
index 7355bbac16a7..8349ff32fc37 100644
--- a/rust/kernel/list.rs
+++ b/rust/kernel/list.rs
@@ -576,6 +576,9 @@ impl<T: ?Sized + ListItem<ID>, const ID: u64> List<T, ID> {
/// This returns `None` if the item is not in the list. (Note that by the safety requirements,
/// this means that the item is not in any list.)
///
+ /// When using this method, be careful with using `mem::take` on the same list as that may
+ /// result in violating the safety requirements of this method.
+ ///
/// # Safety
///
/// `item` must not be in a different linked list (with the same id).