* [PATCH] rust: id_pool: document panics in `find_unused_id` and `release_id`
@ 2026-08-29 15:34 Georgios Androutsopoulos
2026-08-31 1:08 ` Alexandre Courbot
0 siblings, 1 reply; 2+ messages in thread
From: Georgios Androutsopoulos @ 2026-08-29 15:34 UTC (permalink / raw)
To: Alice Ryhl, Burak Emir, Miguel Ojeda, Yury Norov
Cc: Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Trevor Gross, Danilo Krummrich, Daniel Almeida,
Tamir Duberstein, Alexandre Courbot, Onur Özkan,
Eliot Courtney, rust-for-linux, linux-kernel,
Georgios Androutsopoulos
`find_unused_id()` calls `Bitmap::next_zero_bit()` and `release_id()`
calls `Bitmap::clear_bit()`, both of which panic when
`CONFIG_RUST_BITMAP_HARDENED` is enabled and the index is out of
bounds. Neither `IdPool` method documents this.
Add the missing `# Panics` sections and state the bounds requirement
on `offset` and `id`.
Signed-off-by: Georgios Androutsopoulos <georgeandrout13@gmail.com>
---
rust/kernel/id_pool.rs | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/rust/kernel/id_pool.rs b/rust/kernel/id_pool.rs
index 384753fe0..ae6960d7f 100644
--- a/rust/kernel/id_pool.rs
+++ b/rust/kernel/id_pool.rs
@@ -224,7 +224,13 @@ pub fn grow(&mut self, mut resizer: PoolResizer) {
/// Finds an unused ID in the bitmap.
///
/// Upon success, returns its index. Otherwise, returns [`None`]
- /// to indicate that a [`Self::grow_request`] is needed.
+ /// to indicate that a [`Self::grow_request`] is needed. `offset` must be
+ /// in bounds.
+ ///
+ /// # Panics
+ ///
+ /// Panics if `CONFIG_RUST_BITMAP_HARDENED` is enabled and `offset` is out
+ /// of bounds.
#[inline]
#[must_use]
pub fn find_unused_id(&mut self, offset: usize) -> Option<UnusedId<'_>> {
@@ -236,6 +242,13 @@ pub fn find_unused_id(&mut self, offset: usize) -> Option<UnusedId<'_>> {
}
/// Releases an ID.
+ ///
+ /// The `id` must be in bounds.
+ ///
+ /// # Panics
+ ///
+ /// Panics if `CONFIG_RUST_BITMAP_HARDENED` is enabled and `id` is out of
+ /// bounds.
#[inline]
pub fn release_id(&mut self, id: usize) {
self.map.clear_bit(id);
base-commit: 73e3f0710014fe6d4ed98cfc02292f6121db7558
--
2.47.3
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] rust: id_pool: document panics in `find_unused_id` and `release_id`
2026-08-29 15:34 [PATCH] rust: id_pool: document panics in `find_unused_id` and `release_id` Georgios Androutsopoulos
@ 2026-08-31 1:08 ` Alexandre Courbot
0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Courbot @ 2026-08-31 1:08 UTC (permalink / raw)
To: Georgios Androutsopoulos
Cc: Alice Ryhl, Burak Emir, Miguel Ojeda, Yury Norov, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
Onur Özkan, Eliot Courtney, rust-for-linux, linux-kernel
On Sun Aug 30, 2026 at 12:34 AM JST, Georgios Androutsopoulos wrote:
> `find_unused_id()` calls `Bitmap::next_zero_bit()` and `release_id()`
> calls `Bitmap::clear_bit()`, both of which panic when
> `CONFIG_RUST_BITMAP_HARDENED` is enabled and the index is out of
> bounds. Neither `IdPool` method documents this.
>
> Add the missing `# Panics` sections and state the bounds requirement
> on `offset` and `id`.
>
> Signed-off-by: Georgios Androutsopoulos <georgeandrout13@gmail.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
One small nit below.
> ---
> rust/kernel/id_pool.rs | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/rust/kernel/id_pool.rs b/rust/kernel/id_pool.rs
> index 384753fe0..ae6960d7f 100644
> --- a/rust/kernel/id_pool.rs
> +++ b/rust/kernel/id_pool.rs
> @@ -224,7 +224,13 @@ pub fn grow(&mut self, mut resizer: PoolResizer) {
> /// Finds an unused ID in the bitmap.
> ///
> /// Upon success, returns its index. Otherwise, returns [`None`]
> - /// to indicate that a [`Self::grow_request`] is needed.
> + /// to indicate that a [`Self::grow_request`] is needed. `offset` must be
> + /// in bounds.
s/in/within maybe?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-31 1:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-29 15:34 [PATCH] rust: id_pool: document panics in `find_unused_id` and `release_id` Georgios Androutsopoulos
2026-08-31 1:08 ` Alexandre Courbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®