From: Alice Ryhl <aliceryhl@google.com>
To: Tamir Duberstein <tamird@kernel.org>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Arve Hjønnevåg" <arve@android.com>,
"Todd Kjos" <tkjos@android.com>,
"Christian Brauner" <brauner@kernel.org>,
"Carlos Llamas" <cmllamas@google.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org
Subject: Re: [PATCH 3/6] rust: binder: enable `clippy::ptr_as_ptr` lint
Date: Tue, 26 May 2026 12:34:15 +0000 [thread overview]
Message-ID: <ahWTR_kKAySW1259@google.com> (raw)
In-Reply-To: <20260522-binder-strict-provenance-v1-3-3d6e9406e864@kernel.org>
On Fri, May 22, 2026 at 07:12:48PM +0200, Tamir Duberstein wrote:
> In Rust 1.51.0, Clippy introduced the `ptr_as_ptr` lint [1]:
>
> > Though `as` casts between raw pointers are not terrible,
> > `pointer::cast` is safer because it cannot accidentally change pointer
> > mutability or cast the pointer to other types like `usize`.
>
> Apply the required changes and enable the lint in the Binder Rust driver
> -- no functional change intended.
>
> Link: https://rust-lang.github.io/rust-clippy/master/index.html#ptr_as_ptr [1]
> Signed-off-by: Tamir Duberstein <tamird@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
> drivers/android/binder/page_range.rs | 6 +++---
> drivers/android/binder/rust_binder_main.rs | 7 +------
> 2 files changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/android/binder/page_range.rs b/drivers/android/binder/page_range.rs
> index e54a90e62402..927b0802e80d 100644
> --- a/drivers/android/binder/page_range.rs
> +++ b/drivers/android/binder/page_range.rs
> @@ -571,7 +571,7 @@ pub(crate) unsafe fn read<T: FromBytes>(&self, offset: usize) -> Result<T> {
> unsafe {
> self.iterate(offset, size_of::<T>(), |page, offset, to_copy| {
> // SAFETY: The sum of `offset` and `to_copy` is bounded by the size of T.
> - let obj_ptr = (out.as_mut_ptr() as *mut u8).add(out_offset);
> + let obj_ptr = out.as_mut_ptr().cast::<u8>().add(out_offset);
> // SAFETY: The pointer points is in-bounds of the `out` variable, so it is valid.
> page.read_raw(obj_ptr, offset, to_copy)?;
> out_offset += to_copy;
> @@ -593,7 +593,7 @@ pub(crate) unsafe fn write<T: ?Sized>(&self, offset: usize, obj: &T) -> Result {
> unsafe {
> self.iterate(offset, size_of_val(obj), |page, offset, to_copy| {
> // SAFETY: The sum of `offset` and `to_copy` is bounded by the size of T.
> - let obj_ptr = (obj as *const T as *const u8).add(obj_offset);
> + let obj_ptr = (obj as *const T).cast::<u8>().add(obj_offset);
> // SAFETY: We have a reference to the object, so the pointer is valid.
> page.write_raw(obj_ptr, offset, to_copy)?;
> obj_offset += to_copy;
> @@ -712,7 +712,7 @@ fn drop(self: Pin<&mut Self>) {
>
> {
> // CAST: The `list_head` field is first in `PageInfo`.
> - let info = item as *mut PageInfo;
> + let info = item.cast::<PageInfo>();
> // SAFETY: The `range` field of `PageInfo` is immutable.
> range_ptr = unsafe { (*info).range };
> // SAFETY: The `range` outlives its `PageInfo` values.
> diff --git a/drivers/android/binder/rust_binder_main.rs b/drivers/android/binder/rust_binder_main.rs
> index d487638266e3..fa28697982d3 100644
> --- a/drivers/android/binder/rust_binder_main.rs
> +++ b/drivers/android/binder/rust_binder_main.rs
> @@ -6,12 +6,7 @@
>
> #![crate_name = "rust_binder"]
> #![recursion_limit = "256"]
> -#![allow(
> - clippy::as_underscore,
> - clippy::ref_as_ptr,
> - clippy::ptr_as_ptr,
> - clippy::cast_lossless
> -)]
> +#![allow(clippy::as_underscore, clippy::ref_as_ptr, clippy::cast_lossless)]
>
> use kernel::{
> bindings::{self, seq_file},
>
> --
> 2.54.0
>
next prev parent reply other threads:[~2026-05-26 12:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 17:12 [PATCH 0/6] rust: binder: reduce `as` casts Tamir Duberstein
2026-05-22 17:12 ` [PATCH 1/6] rust: binder: use strict provenance APIs Tamir Duberstein
2026-05-26 12:32 ` Alice Ryhl
2026-05-22 17:12 ` [PATCH 2/6] rust: binder: transmute transaction data Tamir Duberstein
2026-05-26 12:33 ` Alice Ryhl
2026-05-26 13:33 ` Tamir Duberstein
2026-05-26 13:36 ` Alice Ryhl
2026-05-26 13:39 ` Tamir Duberstein
2026-05-26 13:42 ` Alice Ryhl
2026-05-26 16:30 ` Tamir Duberstein
2026-05-26 17:47 ` Miguel Ojeda
2026-05-26 18:00 ` Tamir Duberstein
2026-05-26 19:21 ` Miguel Ojeda
2026-05-22 17:12 ` [PATCH 3/6] rust: binder: enable `clippy::ptr_as_ptr` lint Tamir Duberstein
2026-05-26 12:34 ` Alice Ryhl [this message]
2026-05-22 17:12 ` [PATCH 4/6] rust: binder: enable `clippy::ref_as_ptr` lint Tamir Duberstein
2026-05-26 12:46 ` Alice Ryhl
2026-05-26 13:37 ` Tamir Duberstein
2026-05-22 17:12 ` [PATCH 5/6] rust: binder: enable `clippy::as_underscore` Tamir Duberstein
2026-05-26 12:44 ` Alice Ryhl
2026-05-26 17:30 ` Tamir Duberstein
2026-05-22 17:12 ` [PATCH 6/6] rust: binder: enable `clippy::cast_lossless` Tamir Duberstein
2026-05-26 12:44 ` Alice Ryhl
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=ahWTR_kKAySW1259@google.com \
--to=aliceryhl@google.com \
--cc=a.hindborg@kernel.org \
--cc=arve@android.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=brauner@kernel.org \
--cc=cmllamas@google.com \
--cc=dakr@kernel.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tamird@kernel.org \
--cc=tkjos@android.com \
--cc=tmgross@umich.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox