[PATCH v4 0/3] rust: add `UnsafePinned` type

Christian Schrefl posted 3 patches 7 months, 1 week ago
rust/kernel/revocable.rs           |   2 +
rust/kernel/types.rs               |  45 ++++++++-------
rust/kernel/types/unsafe_pinned.rs | 111 +++++++++++++++++++++++++++++++++++++
3 files changed, 138 insertions(+), 20 deletions(-)
[PATCH v4 0/3] rust: add `UnsafePinned` type
Posted by Christian Schrefl 7 months, 1 week ago
This version now only has the kernel implementation without the
config flag for using the upstream version. Additionally now
commits for using `UnsafePinned` in `Opaque` were added.

Checkpatch warns about `rust/kernel/types/unsafe_pinned.rs`
missing a MAINTAINERS entry. This should be fine because it
will be included in the RUST entry.

This patchset is based on the pin-init-next branch.

Signed-off-by: Christian Schrefl <chrisi.schrefl@gmail.com>
---
Changes in v4:
- Reworked `UnsafePinned::add` doctest to not use get_mut_unchecked.
- Link to v3: https://lore.kernel.org/r/20250510-rust_unsafe_pinned-v3-0-57ce151123f9@gmail.com

Changes in v3:
- Dropped CONFIG_RUSTC_HAS_UNSAFE_PINNED and feature(unsafe_pinned) (Alice)
- Add comment to `Opaque` reasoning about included `UnsafeCell` (Benno)
- Small changes in commit message of Patch 3 (Benno)
- Removed docs mentioning not included functions (Benno)
- Removed docs mentioning implementation details and added that as
    comment instead (Benno)
- Link to v2: https://lore.kernel.org/r/20250430-rust_unsafe_pinned-v2-0-fc8617a74024@gmail.com

Changes in v2:
- Expanded `UnsafePinned` documentation to describe differences
    with upstream rust implementation.
- Removed config flag for using upstream `UnsafePinned` type.
- Add patch implementing `Wrapper` for `Opaque`
- Add patch for using `UnsafePinned` internally in `Opaque`
- Link to v1: https://lore.kernel.org/r/20250418-rust_unsafe_pinned-v1-1-c4c7558399f8@gmail.com

---
Christian Schrefl (3):
      rust: add UnsafePinned type
      rust: implement `Wrapper<T>` for `Opaque<T>`
      rust: use `UnsafePinned` in the implementation of `Opaque`

 rust/kernel/revocable.rs           |   2 +
 rust/kernel/types.rs               |  45 ++++++++-------
 rust/kernel/types/unsafe_pinned.rs | 111 +++++++++++++++++++++++++++++++++++++
 3 files changed, 138 insertions(+), 20 deletions(-)
---
base-commit: 9de1a293c8ece00d226b21a35751ec178be2a9fa
change-id: 20250418-rust_unsafe_pinned-891dce27418d

Best regards,
-- 
Christian Schrefl <chrisi.schrefl@gmail.com>
Re: [PATCH v4 0/3] rust: add `UnsafePinned` type
Posted by Boqun Feng 7 months ago
On Sun, May 11, 2025 at 08:21:37PM +0200, Christian Schrefl wrote:
> This version now only has the kernel implementation without the
> config flag for using the upstream version. Additionally now
> commits for using `UnsafePinned` in `Opaque` were added.
> 
> Checkpatch warns about `rust/kernel/types/unsafe_pinned.rs`
> missing a MAINTAINERS entry. This should be fine because it
> will be included in the RUST entry.
> 
> This patchset is based on the pin-init-next branch.
> 
> Signed-off-by: Christian Schrefl <chrisi.schrefl@gmail.com>

Reviewed-by: Boqun Feng <boqun.feng@gmail.com>

Thanks a lot for doing this!

Regards,
Boqun

> ---
> Changes in v4:
> - Reworked `UnsafePinned::add` doctest to not use get_mut_unchecked.
> - Link to v3: https://lore.kernel.org/r/20250510-rust_unsafe_pinned-v3-0-57ce151123f9@gmail.com
> 
> Changes in v3:
> - Dropped CONFIG_RUSTC_HAS_UNSAFE_PINNED and feature(unsafe_pinned) (Alice)
> - Add comment to `Opaque` reasoning about included `UnsafeCell` (Benno)
> - Small changes in commit message of Patch 3 (Benno)
> - Removed docs mentioning not included functions (Benno)
> - Removed docs mentioning implementation details and added that as
>     comment instead (Benno)
> - Link to v2: https://lore.kernel.org/r/20250430-rust_unsafe_pinned-v2-0-fc8617a74024@gmail.com
> 
> Changes in v2:
> - Expanded `UnsafePinned` documentation to describe differences
>     with upstream rust implementation.
> - Removed config flag for using upstream `UnsafePinned` type.
> - Add patch implementing `Wrapper` for `Opaque`
> - Add patch for using `UnsafePinned` internally in `Opaque`
> - Link to v1: https://lore.kernel.org/r/20250418-rust_unsafe_pinned-v1-1-c4c7558399f8@gmail.com
> 
> ---
> Christian Schrefl (3):
>       rust: add UnsafePinned type
>       rust: implement `Wrapper<T>` for `Opaque<T>`
>       rust: use `UnsafePinned` in the implementation of `Opaque`
> 
>  rust/kernel/revocable.rs           |   2 +
>  rust/kernel/types.rs               |  45 ++++++++-------
>  rust/kernel/types/unsafe_pinned.rs | 111 +++++++++++++++++++++++++++++++++++++
>  3 files changed, 138 insertions(+), 20 deletions(-)
> ---
> base-commit: 9de1a293c8ece00d226b21a35751ec178be2a9fa
> change-id: 20250418-rust_unsafe_pinned-891dce27418d
> 
> Best regards,
> -- 
> Christian Schrefl <chrisi.schrefl@gmail.com>
>