* FAILED: patch "[PATCH] rust: init: fix `Zeroable` implementation for" failed to apply to 6.6-stable tree
@ 2025-03-16 7:16 gregkh
2025-03-16 16:09 ` [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>` Miguel Ojeda
0 siblings, 1 reply; 10+ messages in thread
From: gregkh @ 2025-03-16 7:16 UTC (permalink / raw)
To: benno.lossin, a.hindborg, aliceryhl, ojeda; +Cc: stable
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x df27cef153603b18a7d094b53cc3d5264ff32797
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2025031635-resent-sniff-676f@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From df27cef153603b18a7d094b53cc3d5264ff32797 Mon Sep 17 00:00:00 2001
From: Benno Lossin <benno.lossin@proton.me>
Date: Wed, 5 Mar 2025 13:29:01 +0000
Subject: [PATCH] rust: init: fix `Zeroable` implementation for
`Option<NonNull<T>>` and `Option<KBox<T>>`
According to [1], `NonNull<T>` and `#[repr(transparent)]` wrapper types
such as our custom `KBox<T>` have the null pointer optimization only if
`T: Sized`. Thus remove the `Zeroable` implementation for the unsized
case.
Link: https://doc.rust-lang.org/stable/std/option/index.html#representation [1]
Reported-by: Alice Ryhl <aliceryhl@google.com>
Closes: https://lore.kernel.org/rust-for-linux/CAH5fLghL+qzrD8KiCF1V3vf2YcC6aWySzkmaE2Zzrnh1gKj-hw@mail.gmail.com/
Cc: stable@vger.kernel.org # v6.12+ (a custom patch will be needed for 6.6.y)
Fixes: 38cde0bd7b67 ("rust: init: add `Zeroable` trait and `init::zeroed` function")
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20250305132836.2145476-1-benno.lossin@proton.me
[ Added Closes tag and moved up the Reported-by one. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
diff --git a/rust/kernel/init.rs b/rust/kernel/init.rs
index 7fd1ea8265a5..8bbd5e3398fc 100644
--- a/rust/kernel/init.rs
+++ b/rust/kernel/init.rs
@@ -1418,17 +1418,14 @@ macro_rules! impl_zeroable {
// SAFETY: `T: Zeroable` and `UnsafeCell` is `repr(transparent)`.
{<T: ?Sized + Zeroable>} UnsafeCell<T>,
- // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee).
+ // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee:
+ // https://doc.rust-lang.org/stable/std/option/index.html#representation).
Option<NonZeroU8>, Option<NonZeroU16>, Option<NonZeroU32>, Option<NonZeroU64>,
Option<NonZeroU128>, Option<NonZeroUsize>,
Option<NonZeroI8>, Option<NonZeroI16>, Option<NonZeroI32>, Option<NonZeroI64>,
Option<NonZeroI128>, Option<NonZeroIsize>,
-
- // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee).
- //
- // In this case we are allowed to use `T: ?Sized`, since all zeros is the `None` variant.
- {<T: ?Sized>} Option<NonNull<T>>,
- {<T: ?Sized>} Option<KBox<T>>,
+ {<T>} Option<NonNull<T>>,
+ {<T>} Option<KBox<T>>,
// SAFETY: `null` pointer is valid.
//
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-16 7:16 FAILED: patch "[PATCH] rust: init: fix `Zeroable` implementation for" failed to apply to 6.6-stable tree gregkh
@ 2025-03-16 16:09 ` Miguel Ojeda
2025-03-16 16:13 ` Miguel Ojeda
2025-03-17 12:24 ` Sasha Levin
0 siblings, 2 replies; 10+ messages in thread
From: Miguel Ojeda @ 2025-03-16 16:09 UTC (permalink / raw)
To: stable; +Cc: Benno Lossin, Alice Ryhl, Andreas Hindborg, Miguel Ojeda
From: Benno Lossin <benno.lossin@proton.me>
commit df27cef153603b18a7d094b53cc3d5264ff32797 upstream.
According to [1], `NonNull<T>` and `#[repr(transparent)]` wrapper types
such as `Box<T>` have the null pointer optimization only if `T: Sized`.
Thus remove the `Zeroable` implementation for the unsized case.
Link: https://doc.rust-lang.org/stable/std/option/index.html#representation [1]
Reported-by: Alice Ryhl <aliceryhl@google.com>
Closes: https://lore.kernel.org/rust-for-linux/CAH5fLghL+qzrD8KiCF1V3vf2YcC6aWySzkmaE2Zzrnh1gKj-hw@mail.gmail.com/
Cc: stable@vger.kernel.org # v6.12+ (a custom patch will be needed for 6.6.y)
Fixes: 38cde0bd7b67 ("rust: init: add `Zeroable` trait and `init::zeroed` function")
Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20250305132836.2145476-1-benno.lossin@proton.me
[ Added Closes tag and moved up the Reported-by one. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
rust/kernel/init.rs | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/rust/kernel/init.rs b/rust/kernel/init.rs
index 2d4b19b86857..6ef9f6182018 100644
--- a/rust/kernel/init.rs
+++ b/rust/kernel/init.rs
@@ -1310,17 +1310,14 @@ macro_rules! impl_zeroable {
// SAFETY: `T: Zeroable` and `UnsafeCell` is `repr(transparent)`.
{<T: ?Sized + Zeroable>} UnsafeCell<T>,
- // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee).
+ // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee:
+ // https://doc.rust-lang.org/stable/std/option/index.html#representation).
Option<NonZeroU8>, Option<NonZeroU16>, Option<NonZeroU32>, Option<NonZeroU64>,
Option<NonZeroU128>, Option<NonZeroUsize>,
Option<NonZeroI8>, Option<NonZeroI16>, Option<NonZeroI32>, Option<NonZeroI64>,
Option<NonZeroI128>, Option<NonZeroIsize>,
-
- // SAFETY: All zeros is equivalent to `None` (option layout optimization guarantee).
- //
- // In this case we are allowed to use `T: ?Sized`, since all zeros is the `None` variant.
- {<T: ?Sized>} Option<NonNull<T>>,
- {<T: ?Sized>} Option<Box<T>>,
+ {<T>} Option<NonNull<T>>,
+ {<T>} Option<Box<T>>,
// SAFETY: `null` pointer is valid.
//
--
2.49.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-16 16:09 ` [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>` Miguel Ojeda
@ 2025-03-16 16:13 ` Miguel Ojeda
2025-03-16 16:32 ` Greg KH
2025-03-17 12:24 ` Sasha Levin
1 sibling, 1 reply; 10+ messages in thread
From: Miguel Ojeda @ 2025-03-16 16:13 UTC (permalink / raw)
To: Miguel Ojeda; +Cc: stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Sun, Mar 16, 2025 at 5:09 PM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> [ Added Closes tag and moved up the Reported-by one. - Miguel ]
Note that this is the note of the original commit -- for the actual
backport, I changed `KBox` to `Box`, and edited the title and the log
accordingly.
I can add [ ] for the backport changes itself in the future, if that helps.
Cheers,
Miguel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-16 16:13 ` Miguel Ojeda
@ 2025-03-16 16:32 ` Greg KH
2025-03-17 18:21 ` Miguel Ojeda
0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2025-03-16 16:32 UTC (permalink / raw)
To: Miguel Ojeda
Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Sun, Mar 16, 2025 at 05:13:05PM +0100, Miguel Ojeda wrote:
> On Sun, Mar 16, 2025 at 5:09 PM Miguel Ojeda <ojeda@kernel.org> wrote:
> >
> > [ Added Closes tag and moved up the Reported-by one. - Miguel ]
>
> Note that this is the note of the original commit -- for the actual
> backport, I changed `KBox` to `Box`, and edited the title and the log
> accordingly.
>
> I can add [ ] for the backport changes itself in the future, if that helps.
In the future, sure, that would help. Don't worry about it this time.
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-16 16:32 ` Greg KH
@ 2025-03-17 18:21 ` Miguel Ojeda
2025-03-17 20:24 ` Greg KH
0 siblings, 1 reply; 10+ messages in thread
From: Miguel Ojeda @ 2025-03-17 18:21 UTC (permalink / raw)
To: Greg KH; +Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Sun, Mar 16, 2025 at 5:33 PM Greg KH <greg@kroah.com> wrote:
>
> In the future, sure, that would help. Don't worry about it this time.
Sounds good, thanks!
In stable-rc I see the original title/message used, is that expected?
Cheers,
Miguel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-17 18:21 ` Miguel Ojeda
@ 2025-03-17 20:24 ` Greg KH
2025-03-17 20:39 ` Miguel Ojeda
0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2025-03-17 20:24 UTC (permalink / raw)
To: Miguel Ojeda
Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Mon, Mar 17, 2025 at 07:21:18PM +0100, Miguel Ojeda wrote:
> On Sun, Mar 16, 2025 at 5:33 PM Greg KH <greg@kroah.com> wrote:
> >
> > In the future, sure, that would help. Don't worry about it this time.
>
> Sounds good, thanks!
>
> In stable-rc I see the original title/message used, is that expected?
I didn't notice that you changed the title, so yes, it's expected as the
tool takes what you send and picks out the diff portion, and leaves the
changelog text alone (unless you add some more lines).
Why did the title change? That's just going to confuse things.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-17 20:24 ` Greg KH
@ 2025-03-17 20:39 ` Miguel Ojeda
2025-03-17 20:54 ` Miguel Ojeda
0 siblings, 1 reply; 10+ messages in thread
From: Miguel Ojeda @ 2025-03-17 20:39 UTC (permalink / raw)
To: Greg KH; +Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Mon, Mar 17, 2025 at 9:25 PM Greg KH <greg@kroah.com> wrote:
>
> I didn't notice that you changed the title, so yes, it's expected as the
> tool takes what you send and picks out the diff portion, and leaves the
> changelog text alone (unless you add some more lines).
I mentioned it in the message above, but not just the title changed,
the message too.
> Why did the title change? That's just going to confuse things.
The reason is that `KBox` does not exist in 6.6.y. The fix still
applies, though, and is the same fix for `Box`.
So I reworded accordingly: I renamed `KBox` and `Box` in the title and
the message (and touched a bit the message to remove "custom" since in
6.6.y it is essentially the standard library one).
I hope that clarifies.
Cheers,
Miguel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-17 20:39 ` Miguel Ojeda
@ 2025-03-17 20:54 ` Miguel Ojeda
2025-03-18 13:21 ` Greg KH
0 siblings, 1 reply; 10+ messages in thread
From: Miguel Ojeda @ 2025-03-17 20:54 UTC (permalink / raw)
To: Greg KH; +Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Mon, Mar 17, 2025 at 9:39 PM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
>
> So I reworded accordingly: I renamed `KBox` and `Box` in the title and
s/and/to/
Anyway, if the policy is to keep titles and original log intact even
in Option 3, I assume one should avoid [ ] comments in the log, and
only use the one-line-before-my-SoB style for [ ], since I assume you
keep the tags.
Cheers,
Miguel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-17 20:54 ` Miguel Ojeda
@ 2025-03-18 13:21 ` Greg KH
0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2025-03-18 13:21 UTC (permalink / raw)
To: Miguel Ojeda
Cc: Miguel Ojeda, stable, Benno Lossin, Alice Ryhl, Andreas Hindborg
On Mon, Mar 17, 2025 at 09:54:03PM +0100, Miguel Ojeda wrote:
> On Mon, Mar 17, 2025 at 9:39 PM Miguel Ojeda
> <miguel.ojeda.sandonis@gmail.com> wrote:
> >
> > So I reworded accordingly: I renamed `KBox` and `Box` in the title and
>
> s/and/to/
>
> Anyway, if the policy is to keep titles and original log intact even
> in Option 3, I assume one should avoid [ ] comments in the log, and
> only use the one-line-before-my-SoB style for [ ], since I assume you
> keep the tags.
Yeah, that is good, but really it's not that big of a deal, we can parse
text pretty easily and handle it when it's not "perfect" :)
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
2025-03-16 16:09 ` [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>` Miguel Ojeda
2025-03-16 16:13 ` Miguel Ojeda
@ 2025-03-17 12:24 ` Sasha Levin
1 sibling, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2025-03-17 12:24 UTC (permalink / raw)
To: stable; +Cc: Miguel Ojeda, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: df27cef153603b18a7d094b53cc3d5264ff32797
WARNING: Author mismatch between patch and upstream commit:
Backport author: Miguel Ojeda<ojeda@kernel.org>
Commit author: Benno Lossin<benno.lossin@proton.me>
Status in newer kernel trees:
6.13.y | Present (different SHA1: 1a1d0545f7a5)
6.12.y | Present (different SHA1: 0d876a8ae2cb)
Note: The patch differs from the upstream commit:
---
1: df27cef153603 ! 1: f87fa26b09a1f rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<KBox<T>>`
@@ Metadata
Author: Benno Lossin <benno.lossin@proton.me>
## Commit message ##
- rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<KBox<T>>`
+ rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>`
+
+ commit df27cef153603b18a7d094b53cc3d5264ff32797 upstream.
According to [1], `NonNull<T>` and `#[repr(transparent)]` wrapper types
- such as our custom `KBox<T>` have the null pointer optimization only if
- `T: Sized`. Thus remove the `Zeroable` implementation for the unsized
- case.
+ such as `Box<T>` have the null pointer optimization only if `T: Sized`.
+ Thus remove the `Zeroable` implementation for the unsized case.
Link: https://doc.rust-lang.org/stable/std/option/index.html#representation [1]
Reported-by: Alice Ryhl <aliceryhl@google.com>
@@ rust/kernel/init.rs: macro_rules! impl_zeroable {
- //
- // In this case we are allowed to use `T: ?Sized`, since all zeros is the `None` variant.
- {<T: ?Sized>} Option<NonNull<T>>,
-- {<T: ?Sized>} Option<KBox<T>>,
+- {<T: ?Sized>} Option<Box<T>>,
+ {<T>} Option<NonNull<T>>,
-+ {<T>} Option<KBox<T>>,
++ {<T>} Option<Box<T>>,
// SAFETY: `null` pointer is valid.
//
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.6.y | Success | Success |
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-03-18 13:23 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-16 7:16 FAILED: patch "[PATCH] rust: init: fix `Zeroable` implementation for" failed to apply to 6.6-stable tree gregkh
2025-03-16 16:09 ` [PATCH 6.6.y] rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<Box<T>>` Miguel Ojeda
2025-03-16 16:13 ` Miguel Ojeda
2025-03-16 16:32 ` Greg KH
2025-03-17 18:21 ` Miguel Ojeda
2025-03-17 20:24 ` Greg KH
2025-03-17 20:39 ` Miguel Ojeda
2025-03-17 20:54 ` Miguel Ojeda
2025-03-18 13:21 ` Greg KH
2025-03-17 12:24 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox