* [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment
@ 2026-04-25 6:08 Hsiu Che Yu
2026-04-25 6:32 ` Alexandre Courbot
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
0 siblings, 2 replies; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 6:08 UTC (permalink / raw)
To: rust-for-linux
Cc: Hsiu Che Yu, Danilo Krummrich, Lorenzo Stoakes, Vlastimil Babka,
Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, open list
Add a doc test for `Vec::extend_with` demonstrating basic usage and the
zero-length case.
Also fix an incorrect operator in the SAFETY comment, changing `<` to `<=`,
since `Vec::reserve` guarantees capacity for exactly n additional elements,
so the equal case should be included.
Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
---
rust/kernel/alloc/kvec.rs | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/rust/kernel/alloc/kvec.rs b/rust/kernel/alloc/kvec.rs
index ac8d6f763ae8..fc4bf0a7934d 100644
--- a/rust/kernel/alloc/kvec.rs
+++ b/rust/kernel/alloc/kvec.rs
@@ -737,6 +737,24 @@ pub fn retain(&mut self, mut f: impl FnMut(&mut T) -> bool) {
impl<T: Clone, A: Allocator> Vec<T, A> {
/// Extend the vector by `n` clones of `value`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// let mut v = KVec::new();
+ /// v.push(1, GFP_KERNEL)?;
+ ///
+ /// v.extend_with(3, 5, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5]);
+ ///
+ /// v.extend_with(2, 8, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5, 8, 8]);
+ ///
+ /// v.extend_with(0, 3, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5, 8, 8]);
+ ///
+ /// # Ok::<(), Error>(())
+ /// ```
pub fn extend_with(&mut self, n: usize, value: T, flags: Flags) -> Result<(), AllocError> {
if n == 0 {
return Ok(());
@@ -754,7 +772,7 @@ pub fn extend_with(&mut self, n: usize, value: T, flags: Flags) -> Result<(), Al
spare[n - 1].write(value);
// SAFETY:
- // - `self.len() + n < self.capacity()` due to the call to reserve above,
+ // - `self.len() + n <= self.capacity()` due to the call to reserve above,
// - the loop and the line above initialized the next `n` elements.
unsafe { self.inc_len(n) };
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment
2026-04-25 6:08 [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment Hsiu Che Yu
@ 2026-04-25 6:32 ` Alexandre Courbot
2026-04-25 6:53 ` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
1 sibling, 1 reply; 12+ messages in thread
From: Alexandre Courbot @ 2026-04-25 6:32 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
Hello Hsiu,
On Sat Apr 25, 2026 at 3:08 PM JST, Hsiu Che Yu wrote:
> Add a doc test for `Vec::extend_with` demonstrating basic usage and the
> zero-length case.
>
> Also fix an incorrect operator in the SAFETY comment, changing `<` to `<=`,
> since `Vec::reserve` guarantees capacity for exactly n additional elements,
> so the equal case should be included.
As per the guidelines [1], "A patch should do one thing and one thing
only".
These should be two separate patches.
[1] https://kernelnewbies.org/PatchSeries
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment
2026-04-25 6:32 ` Alexandre Courbot
@ 2026-04-25 6:53 ` Hsiu Che Yu
2026-04-25 7:20 ` Alexandre Courbot
0 siblings, 1 reply; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 6:53 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Hsiu Che Yu, rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
Hi Alexandre,
On Sat, Apr 25, 2026 at 03:32:57PM +0900, Alexandre Courbot wrote:
>As per the guidelines [1], "A patch should do one thing and one thing
>only".
>
>These should be two separate patches.
You're right, my apologies for bundling two unrelated changes together.
Should I send these as two separate v2 patches, or start fresh with two new patch series?
Thanks,
Hsiu
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment
2026-04-25 6:53 ` Hsiu Che Yu
@ 2026-04-25 7:20 ` Alexandre Courbot
2026-04-25 9:00 ` Hsiu Che Yu
0 siblings, 1 reply; 12+ messages in thread
From: Alexandre Courbot @ 2026-04-25 7:20 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
On Sat Apr 25, 2026 at 3:53 PM JST, Hsiu Che Yu wrote:
> Hi Alexandre,
>
> On Sat, Apr 25, 2026 at 03:32:57PM +0900, Alexandre Courbot wrote:
>>As per the guidelines [1], "A patch should do one thing and one thing
>>only".
>>
>>These should be two separate patches.
>
> You're right, my apologies for bundling two unrelated changes together.
>
> Should I send these as two separate v2 patches, or start fresh with two new patch series?
A v2 sounds appropriate since this it is the same work, only rearranged a bit.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment
2026-04-25 7:20 ` Alexandre Courbot
@ 2026-04-25 9:00 ` Hsiu Che Yu
0 siblings, 0 replies; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 9:00 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Hsiu Che Yu, rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
On Sat, Apr 25, 2026 at 04:20:22PM +0900, Alexandre Courbot wrote:
>A v2 sounds appropriate since this it is the same work, only rearranged a bit.
Got it. I will send out v2 shortly.
thanks,
Hsiu
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with`
2026-04-25 6:08 [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment Hsiu Che Yu
2026-04-25 6:32 ` Alexandre Courbot
@ 2026-04-25 10:16 ` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with` Hsiu Che Yu
` (2 more replies)
1 sibling, 3 replies; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 10:16 UTC (permalink / raw)
To: rust-for-linux
Cc: Alexandre Courbot, Hsiu Che Yu, Miguel Ojeda, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, Danilo Krummrich
Fix an incorrect SAFETY comment and add a doc test for `Vec::extend_with`.
---
Changes in v2:
- Split into two separate patches per maintainer feedback
Hsiu Che Yu (2):
rust: alloc: add doc test for `Vec::extend_with`
rust: alloc: fix `Vec::extend_with` SAFETY comment
rust/kernel/alloc/kvec.rs | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with`
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
@ 2026-04-25 10:16 ` Hsiu Che Yu
2026-04-26 3:58 ` Alexandre Courbot
2026-04-25 10:16 ` [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment Hsiu Che Yu
2026-04-26 4:00 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Alexandre Courbot
2 siblings, 1 reply; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 10:16 UTC (permalink / raw)
To: rust-for-linux
Cc: Alexandre Courbot, Hsiu Che Yu, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
Add a doc test for `Vec::extend_with` demonstrating basic usage and the
zero-length case.
Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
---
rust/kernel/alloc/kvec.rs | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/rust/kernel/alloc/kvec.rs b/rust/kernel/alloc/kvec.rs
index ac8d6f763ae8..408a51ad3623 100644
--- a/rust/kernel/alloc/kvec.rs
+++ b/rust/kernel/alloc/kvec.rs
@@ -737,6 +737,24 @@ pub fn retain(&mut self, mut f: impl FnMut(&mut T) -> bool) {
impl<T: Clone, A: Allocator> Vec<T, A> {
/// Extend the vector by `n` clones of `value`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// let mut v = KVec::new();
+ /// v.push(1, GFP_KERNEL)?;
+ ///
+ /// v.extend_with(3, 5, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5]);
+ ///
+ /// v.extend_with(2, 8, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5, 8, 8]);
+ ///
+ /// v.extend_with(0, 3, GFP_KERNEL)?;
+ /// assert_eq!(&v, &[1, 5, 5, 5, 8, 8]);
+ ///
+ /// # Ok::<(), Error>(())
+ /// ```
pub fn extend_with(&mut self, n: usize, value: T, flags: Flags) -> Result<(), AllocError> {
if n == 0 {
return Ok(());
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with`
2026-04-25 10:16 ` [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with` Hsiu Che Yu
@ 2026-04-26 3:58 ` Alexandre Courbot
0 siblings, 0 replies; 12+ messages in thread
From: Alexandre Courbot @ 2026-04-26 3:58 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
On Sat Apr 25, 2026 at 7:16 PM JST, Hsiu Che Yu wrote:
> Add a doc test for `Vec::extend_with` demonstrating basic usage and the
> zero-length case.
>
> Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Tested-by: Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with` Hsiu Che Yu
@ 2026-04-25 10:16 ` Hsiu Che Yu
2026-04-25 15:17 ` Alexandre Courbot
2026-04-26 13:10 ` Miguel Ojeda
2026-04-26 4:00 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Alexandre Courbot
2 siblings, 2 replies; 12+ messages in thread
From: Hsiu Che Yu @ 2026-04-25 10:16 UTC (permalink / raw)
To: rust-for-linux
Cc: Alexandre Courbot, Hsiu Che Yu, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
Fix an incorrect operator in the SAFETY comment, changing `<` to `<=`,
since `Vec::reserve` guarantees capacity for exactly n additional elements,
so the equal case should be included.
Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
---
rust/kernel/alloc/kvec.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust/kernel/alloc/kvec.rs b/rust/kernel/alloc/kvec.rs
index 408a51ad3623..fc4bf0a7934d 100644
--- a/rust/kernel/alloc/kvec.rs
+++ b/rust/kernel/alloc/kvec.rs
@@ -772,7 +772,7 @@ pub fn extend_with(&mut self, n: usize, value: T, flags: Flags) -> Result<(), Al
spare[n - 1].write(value);
// SAFETY:
- // - `self.len() + n < self.capacity()` due to the call to reserve above,
+ // - `self.len() + n <= self.capacity()` due to the call to reserve above,
// - the loop and the line above initialized the next `n` elements.
unsafe { self.inc_len(n) };
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment
2026-04-25 10:16 ` [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment Hsiu Che Yu
@ 2026-04-25 15:17 ` Alexandre Courbot
2026-04-26 13:10 ` Miguel Ojeda
1 sibling, 0 replies; 12+ messages in thread
From: Alexandre Courbot @ 2026-04-25 15:17 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Danilo Krummrich, Lorenzo Stoakes,
Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki, Miguel Ojeda,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, open list
On Sat Apr 25, 2026 at 7:16 PM JST, Hsiu Che Yu wrote:
> Fix an incorrect operator in the SAFETY comment, changing `<` to `<=`,
> since `Vec::reserve` guarantees capacity for exactly n additional elements,
> so the equal case should be included.
>
> Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment
2026-04-25 10:16 ` [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment Hsiu Che Yu
2026-04-25 15:17 ` Alexandre Courbot
@ 2026-04-26 13:10 ` Miguel Ojeda
1 sibling, 0 replies; 12+ messages in thread
From: Miguel Ojeda @ 2026-04-26 13:10 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Alexandre Courbot, Danilo Krummrich,
Lorenzo Stoakes, Vlastimil Babka, Liam R. Howlett,
Uladzislau Rezki, Miguel Ojeda, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
Trevor Gross, open list
On Sat, Apr 25, 2026 at 12:18 PM Hsiu Che Yu
<yu.whisper.personal@gmail.com> wrote:
>
> Fix an incorrect operator in the SAFETY comment, changing `<` to `<=`,
> since `Vec::reserve` guarantees capacity for exactly n additional elements,
> so the equal case should be included.
>
> Signed-off-by: Hsiu Che Yu <yu.whisper.personal@gmail.com>
Thanks!
For this case it doesn't matter too much, but in general, when
something is a fix, we add a Fixes: tag (and in most cases Cc: stable@
to accompany it). That helps backporting (when needed), adds context
e.g. for reviewing (at times), etc.
By the way, now that I was looking at `reserve()`, the assert in the
example there should probably use `>= 11` since there is already an
element, instead of `>= 10`. That could be another similar patch.
Cheers,
Miguel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with`
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment Hsiu Che Yu
@ 2026-04-26 4:00 ` Alexandre Courbot
2 siblings, 0 replies; 12+ messages in thread
From: Alexandre Courbot @ 2026-04-26 4:00 UTC (permalink / raw)
To: Hsiu Che Yu
Cc: rust-for-linux, Miguel Ojeda, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
Trevor Gross, Danilo Krummrich
On Sat Apr 25, 2026 at 7:16 PM JST, Hsiu Che Yu wrote:
> Fix an incorrect SAFETY comment and add a doc test for `Vec::extend_with`.
>
> ---
> Changes in v2:
> - Split into two separate patches per maintainer feedback
Looking good - just one thing, when sending a new revision of a
patchset, please start a new thread instead of replying to the previous
one. Otherwise things can get pretty hard to follow once we arrive at,
say, v10. :)
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-04-26 13:10 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-25 6:08 [PATCH] rust: alloc: add doc test for `Vec::extend_with` and fix comment Hsiu Che Yu
2026-04-25 6:32 ` Alexandre Courbot
2026-04-25 6:53 ` Hsiu Che Yu
2026-04-25 7:20 ` Alexandre Courbot
2026-04-25 9:00 ` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Hsiu Che Yu
2026-04-25 10:16 ` [PATCH v2 1/2] rust: alloc: add doc test for `Vec::extend_with` Hsiu Che Yu
2026-04-26 3:58 ` Alexandre Courbot
2026-04-25 10:16 ` [PATCH v2 2/2] rust: alloc: fix `Vec::extend_with` SAFETY comment Hsiu Che Yu
2026-04-25 15:17 ` Alexandre Courbot
2026-04-26 13:10 ` Miguel Ojeda
2026-04-26 4:00 ` [PATCH v2 0/2] rust: alloc: fix and test `Vec::extend_with` Alexandre Courbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox