[PATCH v10 3/5] rust: replace `CStr` with `core::ffi::CStr`

Benno Lossin lossin at kernel.org
Mon May 26 23:03:26 UTC 2025


On Tue May 27, 2025 at 12:24 AM CEST, Tamir Duberstein wrote:
> On Mon, May 26, 2025 at 10:56 AM Benno Lossin <lossin at kernel.org> wrote:
>>
>> On Sat May 24, 2025 at 10:33 PM CEST, Tamir Duberstein wrote:
>> > `std::ffi::CStr` was moved to `core::ffi::CStr` in Rust 1.64. Replace
>> > `kernel::str::CStr` with `core::ffi::CStr` now that we can.
>>
>> What's this supposed to mean?
>
> It means that kernel::str::CStr was introduced before core::ffi:CStr
> was available. I didn't check this before, but it is indeed true - see
> https://github.com/Rust-for-Linux/linux/commit/faa3cbcca03d0dec8f8e43f1d8d5c0860d98a23f.

I see, then just write that and mention the commit.

>> > C-String literals were added in Rust 1.77. Opportunistically replace
>> > instances of `kernel::c_str!` with C-String literals where other code
>> > changes were already necessary; the rest will be done in a later commit.
>>
>> Similarly this, the message should explain the motivation for the
>> change, the change itself and can include additional information.
>
> The motivation is implied (that using standard types is preferable to
> having custom ones; this is also implicit rather than explicit in
> https://github.com/Rust-for-Linux/linux/issues/1075), but I can
> sharpen it.

Please add this information to the commit message.

>> > Signed-off-by: Tamir Duberstein <tamird at gmail.com>
>> > ---
>> >  drivers/gpu/drm/drm_panic_qr.rs |   2 +-
>> >  rust/kernel/device.rs           |   4 +-
>> >  rust/kernel/error.rs            |   4 +-
>> >  rust/kernel/firmware.rs         |  11 +-
>> >  rust/kernel/kunit.rs            |   6 +-
>> >  rust/kernel/miscdevice.rs       |   2 +-
>> >  rust/kernel/net/phy.rs          |   2 +-
>> >  rust/kernel/of.rs               |   2 +-
>> >  rust/kernel/prelude.rs          |   5 +-
>> >  rust/kernel/seq_file.rs         |   4 +-
>> >  rust/kernel/str.rs              | 358 +++++++++-------------------------------
>> >  rust/kernel/sync/condvar.rs     |   2 +-
>> >  rust/kernel/sync/lock.rs        |   2 +-
>> >  rust/kernel/sync/lock/global.rs |   2 +-
>> >  14 files changed, 112 insertions(+), 294 deletions(-)
>>
>> I'm a bit confused by some of the diffs here, they seem pretty messy,
>> any chance that they can be improved?
>
> I'm open to suggestions. I think the confusion arises from git trying
> to keep code from moving; fundamentally much of the change is moving
> methods to an extension trait, which means git has to choose between
> keeping the documentation where it is, or keeping the implementation
> where it is. If I use `--patience` then everything moves together, but
> then the diffstat swells. Thoughts?

I haven't viewed this patch with color-moved (since I haven't applied it
locally), I can try that first and see if it helps.

---
Cheers,
Benno


More information about the dri-devel mailing list