[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250812-rnull-up-v6-16-v4-0-ed801dd3ba5c@kernel.org>
Date: Tue, 12 Aug 2025 10:44:18 +0200
From: Andreas Hindborg <a.hindborg@...nel.org>
To: Boqun Feng <boqun.feng@...il.com>, Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...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>, Danilo Krummrich <dakr@...nel.org>,
Jens Axboe <axboe@...nel.dk>
Cc: linux-block@...r.kernel.org, rust-for-linux@...r.kernel.org,
linux-kernel@...r.kernel.org, Andreas Hindborg <a.hindborg@...nel.org>,
Daniel Almeida <daniel.almeida@...labora.com>
Subject: [PATCH v4 00/15] rnull: add configfs, remote completion to rnull
This series adds configuration via configfs and remote completion to
the rnull driver. The series also includes a set of changes to the
rust block device driver API: a few cleanup patches, and a few features
supporting the rnull changes.
The series removes the raw buffer formatting logic from `kernel::block`
and improves the logic available in `kernel::string` to support the same
use as the removed logic.
This series is a smaller subset of the patches available in the
downstream rnull tree. I hope to minimize the delta between upstream
and downstream over the next few kernel releases.
Signed-off-by: Andreas Hindborg <a.hindborg@...nel.org>
---
Changes in v4:
- Rebase on v6.17-rc1
- Merge patches that expose `str::{Formatter, RawFormatter}` publicly.
- Remove `NullTerminatedFormatter::from_array`.
- Change signature of `Formatter::new`.
- Change invariant wording for `NullTerminatedFormatter`.
- Add missing period in comment for `SECTOR_MASK`.
- Rephrase docstring for PAGE_SECTORS_SHIFT.
- Use `write_str` rather than `write_fmt` where applicable.
- Improve boolean parsing in rnull configfs interface.
- Be explicit when intentionally dropping data (GenDisk::drop).
- Add minimum size invariant to `NullTerminatedFormatter`.
- Import `EINVAL` from the prelude.
- Link to v3: https://lore.kernel.org/r/20250711-rnull-up-v6-16-v3-0-3a262b4e2921@kernel.org
Changes in v3:
- Rename `NullBorrowFormatter` as `NullTerminatedFormatter`.
- Remove `pos` from `NullBorrowFormatter`.
- Call into `Self::new` in `NullBorrowFormatter::from_array`.
- Use `Option` return type in `NullBorrowFormatter::from_array`
- Use `Option` return type in `NullBorrowFormatter::new`.
- Remove `BorrowFormatter` and update `Formatter` with a generic lifetime.
- Split visibility change of `str::Formatter` into separate patch.
- Link to v2: https://lore.kernel.org/r/20250708-rnull-up-v6-16-v2-0-ab93c0ff429b@kernel.org
Changes in v2:
- Rework formatter logic. Add two new formatters that write to slices,
one of which adds a trailing null byte.
- Reorder and split patches so that changes are more clear.
- Fix a typo in soft-irq patch summary.
- Link to v1: https://lore.kernel.org/r/20250616-rnull-up-v6-16-v1-0-a4168b8e76b2@kernel.org
---
Andreas Hindborg (15):
rust: str: normalize imports in `str.rs`
rust: str: allow `str::Formatter` to format into `&mut [u8]`.
rust: str: expose `str::{Formatter, RawFormatter}` publicly.
rust: str: introduce `NullTerminatedFormatter`
rust: block: normalize imports for `gen_disk.rs`
rust: block: use `NullTerminatedFormatter`
rust: block: remove `RawWriter`
rust: block: remove trait bound from `mq::Request` definition
rust: block: add block related constants
rnull: move driver to separate directory
rnull: enable configuration via `configfs`
rust: block: add `GenDisk` private data support
rust: block: mq: fix spelling in a safety comment
rust: block: add remote completion to `Request`
rnull: add soft-irq completion support
MAINTAINERS | 2 +-
drivers/block/Kconfig | 10 +-
drivers/block/Makefile | 4 +-
drivers/block/rnull.rs | 80 -----------
drivers/block/rnull/Kconfig | 13 ++
drivers/block/rnull/Makefile | 3 +
drivers/block/rnull/configfs.rs | 273 +++++++++++++++++++++++++++++++++++++
drivers/block/rnull/rnull.rs | 105 ++++++++++++++
rust/kernel/block.rs | 13 ++
rust/kernel/block/mq.rs | 14 +-
rust/kernel/block/mq/gen_disk.rs | 58 ++++++--
rust/kernel/block/mq/operations.rs | 65 +++++++--
rust/kernel/block/mq/raw_writer.rs | 55 --------
rust/kernel/block/mq/request.rs | 21 ++-
rust/kernel/str.rs | 83 +++++++++--
15 files changed, 608 insertions(+), 191 deletions(-)
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250616-rnull-up-v6-16-b4571e28feee
Best regards,
--
Andreas Hindborg <a.hindborg@...nel.org>
Powered by blists - more mailing lists