[GIT PULL] Rust fixes for 7.0 (2nd)

From: Miguel Ojeda

Date: Sat Mar 14 2026 - 15:00:25 EST


Hi Linus,

Please pull these fixes for Rust.

The top commit has only been in linux-next for one round, but most have
been for more than a week. They can all wait one more week if needed.

No conflicts expected.

Thanks!

Cheers,
Miguel

The following changes since commit 11439c4635edd669ae435eec308f4ab8a0804808:

Linux 7.0-rc2 (2026-03-01 15:39:31 -0800)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux.git tags/rust-fixes-7.0-2

for you to fetch changes up to 592c61f3bfceaa29f8275696bd67c3dfad7ef72e:

rust: kbuild: allow `unused_features` (2026-03-12 15:15:16 +0100)

----------------------------------------------------------------
Rust fixes for v7.0 (2nd)

Toolchain and infrastructure:

- Remap paths to avoid absolute ones starting with the upcoming Rust
1.95.0 release. This improves build reproducibility, avoids leaking
the exact path and avoids having the same path appear in two forms.

The approach here avoids remapping debug information as well, in
order to avoid breaking tools that used the paths to access source
files, which was the previous attempt that needed to be reverted.

- Allow 'unused_features' lint for the upcoming Rust 1.96.0 release.
While well-intentioned, we do not benefit much from the new lint.

- Emit dependency information into '$(depfile)' directly to avoid
a temporary '.d' file (it was an old approach).

'kernel' crate:

- 'str' module: fix warning under '!CONFIG_BLOCK' by making
'NullTerminatedFormatter' public.

- 'cpufreq' module: suppress false positive Clippy warning.

'pin-init' crate:

- Remove '#[disable_initialized_field_access]' attribute which was
unsound. This means removing the support for structs with unaligned
fields (through the 'repr(packed)' attribute), for now.

And document the load-bearing fact of field accessors (i.e. that they
are required for soundness).

- Replace shadowed return token by 'unsafe'-to-create token in order
to remain sound in the face of the likely upcoming Type Alias Impl
Trait (TAIT) and the next trait solver in upstream Rust.

----------------------------------------------------------------
Alexandre Courbot (1):
rust: str: make NullTerminatedFormatter public

Benno Lossin (3):
rust: pin-init: internal: init: remove `#[disable_initialized_field_access]`
rust: pin-init: internal: init: document load-bearing fact of field accessors
rust: pin-init: replace shadowed return token by `unsafe`-to-create token

Gary Guo (2):
rust: kbuild: emit dep-info into $(depfile) directly
rust: build: remap path to avoid absolute path

John Hubbard (1):
rust: cpufreq: suppress clippy::double_parens in Policy doctest

Miguel Ojeda (1):
rust: kbuild: allow `unused_features`

Makefile | 4 +++
rust/Makefile | 11 +++---
rust/kernel/cpufreq.rs | 1 +
rust/kernel/str.rs | 4 +--
rust/pin-init/internal/src/init.rs | 69 +++++++++++++-------------------------
rust/pin-init/src/__internal.rs | 28 +++++++++++++---
6 files changed, 59 insertions(+), 58 deletions(-)