[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a05133e0-0331-46ce-ab50-c423e40a3879@kernel.org>
Date: Fri, 25 Jul 2025 17:07:21 +0200
From: Danilo Krummrich <dakr@...nel.org>
To: Alexandre Courbot <acourbot@...dia.com>
Cc: Abdiel Janulgue <abdiel.janulgue@...il.com>,
Daniel Almeida <daniel.almeida@...labora.com>,
Robin Murphy <robin.murphy@....com>, Andreas Hindborg
<a.hindborg@...nel.org>, Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>, Boqun Feng <boqun.feng@...il.com>,
Gary Guo <gary@...yguo.net>, Björn Roy Baron
<bjorn3_gh@...tonmail.com>, Benno Lossin <lossin@...nel.org>,
Alice Ryhl <aliceryhl@...gle.com>, Trevor Gross <tmgross@...ch.edu>,
"Christian S. Lima" <christiansantoslima21@...il.com>,
rust-for-linux@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] rust: transmute: add `as_bytes` method for `AsBytes`
trait
On 7/25/25 3:08 PM, Alexandre Courbot wrote:
> diff --git a/rust/kernel/transmute.rs b/rust/kernel/transmute.rs
> index 1c7d43771a37b90150de86699f114a2ffb84db91..d4036986a3d7fb97e5da3e121e9590ad23b784e9 100644
> --- a/rust/kernel/transmute.rs
> +++ b/rust/kernel/transmute.rs
> @@ -47,7 +47,16 @@ macro_rules! impl_frombytes {
> ///
> /// Values of this type may not contain any uninitialized bytes. This type must not have interior
> /// mutability.
> -pub unsafe trait AsBytes {}
> +pub unsafe trait AsBytes {
> + /// Returns `self` as a slice of bytes.
> + fn as_bytes(&self) -> &[u8] {
> + let data = (self as *const Self).cast::<u8>();
I'd probably use from_ref() instead. With that,
Reviewed-by: Danilo Krummrich <dakr@...nel.org>
> + let len = size_of_val(self);
> +
> + // SAFETY: `data` is non-null and valid for `len * sizeof::<u8>()` bytes.
> + unsafe { core::slice::from_raw_parts(data, len) }
> + }
> +}
Powered by blists - more mailing lists