All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benno Lossin <lossin@kernel.org>
To: "Andreas Hindborg" <a.hindborg@kernel.org>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Miguel Ojeda" <ojeda@kernel.org>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <lossin@kernel.org>,
	"Alice Ryhl" <aliceryhl@google.com>,
	"Trevor Gross" <tmgross@umich.edu>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Yutaro Ohno" <yutaro.ono.418@gmail.com>,
	Manas <manas18244@iiitd.ac.in>,
	"Xizhe Yin" <xizheyin@smail.nju.edu.cn>,
	"Jens Axboe" <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org, rust-for-linux@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v3 05/11] rust: block: replace `core::mem::zeroed` with `pin_init::zeroed`
Date: Thu, 14 Aug 2025 11:30:32 +0200	[thread overview]
Message-ID: <20250814093046.2071971-6-lossin@kernel.org> (raw)
In-Reply-To: <20250814093046.2071971-1-lossin@kernel.org>

All types in `bindings` implement `Zeroable` if they can, so use
`pin_init::zeroed` instead of relying on `unsafe` code.

If this ends up not compiling in the future, something in bindgen or on
the C side changed and is most likely incorrect.

Signed-off-by: Benno Lossin <lossin@kernel.org>
---
 rust/kernel/block/mq/gen_disk.rs | 3 +--
 rust/kernel/block/mq/tag_set.rs  | 4 +---
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/rust/kernel/block/mq/gen_disk.rs b/rust/kernel/block/mq/gen_disk.rs
index cd54cd64ea88..75b90fe20c7d 100644
--- a/rust/kernel/block/mq/gen_disk.rs
+++ b/rust/kernel/block/mq/gen_disk.rs
@@ -93,8 +93,7 @@ pub fn build<T: Operations>(
         name: fmt::Arguments<'_>,
         tagset: Arc<TagSet<T>>,
     ) -> Result<GenDisk<T>> {
-        // SAFETY: `bindings::queue_limits` contain only fields that are valid when zeroed.
-        let mut lim: bindings::queue_limits = unsafe { core::mem::zeroed() };
+        let mut lim: bindings::queue_limits = pin_init::zeroed();
 
         lim.logical_block_size = self.logical_block_size;
         lim.physical_block_size = self.physical_block_size;
diff --git a/rust/kernel/block/mq/tag_set.rs b/rust/kernel/block/mq/tag_set.rs
index c3cf56d52bee..dae9df408a86 100644
--- a/rust/kernel/block/mq/tag_set.rs
+++ b/rust/kernel/block/mq/tag_set.rs
@@ -38,9 +38,7 @@ pub fn new(
         num_tags: u32,
         num_maps: u32,
     ) -> impl PinInit<Self, error::Error> {
-        // SAFETY: `blk_mq_tag_set` only contains integers and pointers, which
-        // all are allowed to be 0.
-        let tag_set: bindings::blk_mq_tag_set = unsafe { core::mem::zeroed() };
+        let tag_set: bindings::blk_mq_tag_set = pin_init::zeroed();
         let tag_set: Result<_> = core::mem::size_of::<RequestDataWrapper>()
             .try_into()
             .map(|cmd_size| {
-- 
2.50.1


  parent reply	other threads:[~2025-08-14  9:31 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-14  9:30 [PATCH v3 00/11] `Zeroable` improvements & bindings integration Benno Lossin
2025-08-14  9:30 ` [PATCH v3 01/11] rust: add `pin-init` as a dependency to `bindings` and `uapi` Benno Lossin
2025-08-27 17:30   ` Alice Ryhl
2025-08-14  9:30 ` [PATCH v3 02/11] rust: derive `Zeroable` for all structs & unions generated by bindgen where possible Benno Lossin
2025-08-27 17:30   ` Alice Ryhl
2025-08-14  9:30 ` [PATCH v3 03/11] rust: miscdevice: replace `MaybeUninit::zeroed().assume_init()` with `pin_init::zeroed()` Benno Lossin
2025-08-14  9:30 ` [PATCH v3 04/11] rust: phy: " Benno Lossin
2025-08-14  9:30 ` Benno Lossin [this message]
2025-09-17 10:52   ` [PATCH v3 05/11] rust: block: replace `core::mem::zeroed` with `pin_init::zeroed` Andreas Hindborg
2025-08-14  9:30 ` [PATCH v3 06/11] rust: of: " Benno Lossin
2025-08-14  9:30 ` [PATCH v3 07/11] rust: security: " Benno Lossin
2025-08-14 15:19   ` Paul Moore
2025-08-14 15:31     ` Miguel Ojeda
2025-08-14 15:33       ` Miguel Ojeda
2025-08-14 15:38         ` Benno Lossin
2025-08-14 17:42           ` Miguel Ojeda
2025-08-14 15:54       ` Paul Moore
2025-08-14 17:28         ` Benno Lossin
2025-08-14 22:01           ` Paul Moore
2025-08-14 17:48         ` Miguel Ojeda
2025-08-14  9:30 ` [PATCH v3 08/11] rust: drm: " Benno Lossin
2025-08-14  9:30 ` [PATCH v3 09/11] rust: auxiliary: " Benno Lossin
2025-08-14  9:30 ` [PATCH v3 10/11] rust: acpi: " Benno Lossin
2025-08-14  9:30 ` [PATCH v3 11/11] rust: cpufreq: replace `MaybeUninit::zeroed().assume_init()` with `pin_init::zeroed()` Benno Lossin
2025-08-14  9:33   ` Viresh Kumar
2025-08-27 17:19 ` [PATCH v3 00/11] `Zeroable` improvements & bindings integration Alice Ryhl
2025-09-20 10:31   ` Benno Lossin
2025-09-08 12:04 ` Miguel Ojeda
2025-09-20 10:45   ` Benno Lossin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250814093046.2071971-6-lossin@kernel.org \
    --to=lossin@kernel.org \
    --cc=a.hindborg@kernel.org \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=axboe@kernel.dk \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=dakr@kernel.org \
    --cc=gary@garyguo.net \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manas18244@iiitd.ac.in \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tmgross@umich.edu \
    --cc=xizheyin@smail.nju.edu.cn \
    --cc=yutaro.ono.418@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.