[PATCH 00/10] rust: pin-init upstream sync for v7.2 (round 1)

From: Gary Guo

Date: Tue Apr 28 2026 - 09:22:11 EST


This series collects all upstream developments of pin-init to date and
synchronize them to the kernel tree.

Last cycle Benno sent a single sync late in the development cycle, but I
expect a lot of developments this cycle so I'll probably be sending
multiple of them; for bigger changes they'll be sent as their own series
instead of part of a round of sync.

A major change in this cycle is the bump of MSRV to 1.82 to get rid of
unstable features, following the kernel version bump in 7.1. The MSRV is
bumped straight to 1.85 as pin-init can also be used outside kernel, so we
avoid bumping unless there is a need for new version.

Here are the list of merged changes included in the series:

- examples: mark as `#[inline]` all `From::from()`s for `Error`
https://github.com/Rust-for-Linux/pin-init/pull/126
- bump minimum Rust version to 1.82
https://github.com/Rust-for-Linux/pin-init/pull/129
- cleanup `Zeroable` and `ZeroableOptions`
https://github.com/Rust-for-Linux/pin-init/pull/118
- internal: add missing where clause to projection types
https://github.com/Rust-for-Linux/pin-init/pull/121
- internal: internal: remove redundant `#[pin]` filtering
https://github.com/Rust-for-Linux/pin-init/pull/131
- add mailmap and relicense `internal/zeroable.rs` & `.clippy.toml`
https://github.com/Rust-for-Linux/pin-init/pull/137

Here are the list of changes that I intend to merge soon to upstream
pin-init, which I also included in the series:

- cleanup workaround for old Rust compiler
https://github.com/Rust-for-Linux/pin-init/pull/141
- internal: turn `PhantomPinned` error into warnings
https://github.com/Rust-for-Linux/pin-init/pull/135

For information, here are the list of upstream-only changes, which are
related to Cargo or tests/CI changes only.

- build.rs: use `option_env!` to register env variable dependency
https://github.com/Rust-for-Linux/pin-init/pull/128
- clean up dependencies
https://github.com/Rust-for-Linux/pin-init/pull/130
- tests: add test for check correct macro hygiene
https://github.com/Rust-for-Linux/pin-init/pull/133
- ci: use tagged release of actions
https://github.com/Rust-for-Linux/pin-init/pull/134
- ci: have a single job to gate all required jobs
https://github.com/Rust-for-Linux/pin-init/pull/138
- ci: various cleanups
https://github.com/Rust-for-Linux/pin-init/pull/139

Best,
Gary

---
Alistair Francis (1):
rust: pin-init: examples: mark as `#[inline]` all `From::from()`s for `Error`

Benno Lossin (1):
rust: pin-init: internal: adjust license identifier of `zeroable.rs`

Gary Guo (5):
rust: pin-init: bump minimum Rust version to 1.82
rust: pin-init: internal: remove redundant `#[pin]` filtering
rust: pin-init: fix badge URL in README
rust: pin-init: cleanup workaround for old Rust compiler
rust: pin-init: internal: turn `PhantomPinned` error into warnings

Mohamad Alsadhan (3):
rust: pin-init: cleanup `Zeroable` and `ZeroableOptions`
rust: pin-init: extend `impl_zeroable_option` macro to handle generics
rust: pin-init: internal: add missing where clause to projection types

rust/pin-init/README.md | 2 +-
rust/pin-init/examples/big_struct_in_place.rs | 3 -
rust/pin-init/examples/error.rs | 2 +
rust/pin-init/examples/linked_list.rs | 2 -
rust/pin-init/examples/mutex.rs | 2 -
rust/pin-init/examples/pthread_mutex.rs | 2 -
rust/pin-init/examples/static_init.rs | 2 -
rust/pin-init/internal/src/diagnostics.rs | 14 +++++
rust/pin-init/internal/src/init.rs | 9 +--
rust/pin-init/internal/src/lib.rs | 1 -
rust/pin-init/internal/src/pin_data.rs | 10 ++--
rust/pin-init/internal/src/zeroable.rs | 2 +-
rust/pin-init/src/lib.rs | 79 ++++++++++-----------------
13 files changed, 52 insertions(+), 78 deletions(-)
---
base-commit: 1c7cc4904160c6fc6377564140062d68a3dc93a0
change-id: 20260414-pin-init-sync-ae407945a726

Best regards,
--
Gary Guo <gary@xxxxxxxxxxx>