Re: [PATCH v5 0/6] rust: reduce pointer casts, enable related lints

From: Benno Lossin
Date: Tue Mar 25 2025 - 16:30:25 EST


On Tue Mar 25, 2025 at 6:17 PM CET, Tamir Duberstein wrote:
> On Tue, Mar 25, 2025 at 11:33 AM Benno Lossin <benno.lossin@xxxxxxxxx> wrote:
>> On Tue Mar 25, 2025 at 2:34 PM CET, Tamir Duberstein wrote:
>> > On Tue, Mar 25, 2025 at 7:05 AM Benno Lossin <benno.lossin@xxxxxxxxx> wrote:
>> >> On Mon Mar 24, 2025 at 10:59 PM CET, Tamir Duberstein wrote:
>> >> > On Mon, Mar 24, 2025 at 5:55 PM Benno Lossin <benno.lossin@xxxxxxxxx> wrote:
>> >> >> On Mon Mar 24, 2025 at 9:55 PM CET, Tamir Duberstein wrote:
>> >> >> > On Mon, Mar 24, 2025 at 4:16 PM Benno Lossin <benno.lossin@xxxxxxxxx> wrote:
>> >> >> >> I'll leave it up to you what you want to do with this: add it to this
>> >> >> >> series, make a new one, or let someone else handle it. If you don't want
>> >> >> >> to handle it, let me know, then I'll create a good-first-issue :)
>> >> >> >
>> >> >> > I'll add a patch for `cast_lossless` -- the rest should probably go
>> >> >> > into an issue.
>> >> >>
>> >> >> Do you mind filing the issue? Then you can decide yourself what you want
>> >> >> to do yourself vs what you want to leave for others. Feel free to copy
>> >> >> from my mail summary.
>> >> >
>> >> > Well, I don't really know what's left to do. We're pretty close at
>> >> > this point to having enabled everything but the nukes. Then there's
>> >> > the strict provenance thing, which I suppose we can write down.
>> >>
>> >> Yes, but there are also these from my original mail:
>> >> * `shared_ref as *const _` (for example in rust/kernel/uaccess.rs:247,
>> >> rust/kernel/str.rs:32 and rust/kernel/fs/file.rs:367), these we can
>> >> replace with `let ptr: *const ... = shared_ref;`. Don't know if there
>> >> is a clippy lint for this.
>> >
>> > I don't think we should go fixing things for which we don't have a
>> > clippy lint. That way lies madness, particularly as patches begin to
>> > be carried by other trees.
>>
>> There already exists a lint for that: `clippy::ref_as_ptr` (almost
>> created an issue asking for one :)
>
> 🫡 picked this one up as well.

Sniped yet again :)

Thanks a lot for adding this one as well.

>> Here is another lint that we probably want to enable (after the `&raw
>> {const,mut}` series lands): `clippy::borrow_as_ptr`.
>
> This sounds like a good one to file.

Since `raw_ref_op` is already enabled in rust-next, I just filed it:

https://github.com/Rust-for-Linux/linux/issues/1152

---
Cheers,
Benno