Message ID | 20230714-classless_lockdep-v1-1-229b9671ce31@asahilina.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | rust: Implicit lock class creation & Arc Lockdep integration | expand |
Asahi Lina <lina@asahilina.net> writes: > Opaque types are internally MaybeUninit, so it's safe to actually > zero-initialize them as long as we don't claim they are initialized. > This is useful for many FFI types that are expected to be zero-inited by > the user. > > Signed-off-by: Asahi Lina <lina@asahilina.net> LGTM. This is useful on its own. Reviewed-by: Alice Ryhl <aliceryhl@google.com>
On Fri, 14 Jul 2023 18:13:53 +0900 Asahi Lina <lina@asahilina.net> wrote: > Opaque types are internally MaybeUninit, so it's safe to actually > zero-initialize them as long as we don't claim they are initialized. > This is useful for many FFI types that are expected to be zero-inited by > the user. > > Signed-off-by: Asahi Lina <lina@asahilina.net> Reviewed-by: Gary Guo <gary@garyguo.net> I agree with Alice that this patch can accepted on its own. > --- > rust/kernel/types.rs | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs > index 1e5380b16ed5..185d3493857e 100644 > --- a/rust/kernel/types.rs > +++ b/rust/kernel/types.rs > @@ -237,6 +237,11 @@ pub const fn uninit() -> Self { > Self(MaybeUninit::uninit()) > } > > + /// Creates a zeroed value. > + pub fn zeroed() -> Self { > + Self(MaybeUninit::zeroed()) > + } > + > /// Creates a pin-initializer from the given initializer closure. > /// > /// The returned initializer calls the given closure with the pointer to the inner `T` of this >
diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs index 1e5380b16ed5..185d3493857e 100644 --- a/rust/kernel/types.rs +++ b/rust/kernel/types.rs @@ -237,6 +237,11 @@ pub const fn uninit() -> Self { Self(MaybeUninit::uninit()) } + /// Creates a zeroed value. + pub fn zeroed() -> Self { + Self(MaybeUninit::zeroed()) + } + /// Creates a pin-initializer from the given initializer closure. /// /// The returned initializer calls the given closure with the pointer to the inner `T` of this
Opaque types are internally MaybeUninit, so it's safe to actually zero-initialize them as long as we don't claim they are initialized. This is useful for many FFI types that are expected to be zero-inited by the user. Signed-off-by: Asahi Lina <lina@asahilina.net> --- rust/kernel/types.rs | 5 +++++ 1 file changed, 5 insertions(+)