[PATCH v3 00/11] rust: use `core::ffi::CStr` method names

0 views
Skip to first unread message

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:00 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
This is series 2b/5 of the migration to `core::ffi::CStr`[0].
20250704-core-cstr-pre...@gmail.com.

This series depends on the prior series[0] and is intended to go through
the rust tree to reduce the number of release cycles required to
complete the work.

Subsystem maintainers: I would appreciate your `Acked-by`s so that this
can be taken through Miguel's tree (where the other series must go).

[0] https://lore.kernel.org/all/20250704-core-cstr-pre...@gmail.com/

Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
Changes in v3:
- Add a patch to deal with new code in acpi.
- Drop incorrectly applied Acked-by tags from Danilo.
- Link to v2: https://lore.kernel.org/r/20250719-core-cstr-fan...@gmail.com

Changes in v2:
- Update patch title (was nova-core, now drm/panic).
- Link to v1: https://lore.kernel.org/r/20250709-core-cstr-fan...@gmail.com

---
Tamir Duberstein (11):
drm/panic: use `core::ffi::CStr` method names
rust: auxiliary: use `core::ffi::CStr` method names
rust: configfs: use `core::ffi::CStr` method names
rust: cpufreq: use `core::ffi::CStr` method names
rust: drm: use `core::ffi::CStr` method names
rust: firmware: use `core::ffi::CStr` method names
rust: kunit: use `core::ffi::CStr` method names
rust: miscdevice: use `core::ffi::CStr` method names
rust: net: use `core::ffi::CStr` method names
rust: of: use `core::ffi::CStr` method names
rust: acpi: use `core::ffi::CStr` method names

drivers/gpu/drm/drm_panic_qr.rs | 2 +-
rust/kernel/acpi.rs | 7 ++-----
rust/kernel/auxiliary.rs | 4 ++--
rust/kernel/configfs.rs | 4 ++--
rust/kernel/cpufreq.rs | 2 +-
rust/kernel/drm/device.rs | 4 ++--
rust/kernel/firmware.rs | 2 +-
rust/kernel/kunit.rs | 6 +++---
rust/kernel/miscdevice.rs | 2 +-
rust/kernel/net/phy.rs | 2 +-
rust/kernel/of.rs | 2 +-
samples/rust/rust_configfs.rs | 2 +-
12 files changed, 18 insertions(+), 21 deletions(-)
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250709-core-cstr-fanout-1-f20611832272

Best regards,
--
Tamir Duberstein <tam...@gmail.com>

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:04 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Acked-by: Danilo Krummrich <da...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
drivers/gpu/drm/drm_panic_qr.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_panic_qr.rs b/drivers/gpu/drm/drm_panic_qr.rs
index 09a9b452e8b7..10bc5bb16992 100644
--- a/drivers/gpu/drm/drm_panic_qr.rs
+++ b/drivers/gpu/drm/drm_panic_qr.rs
@@ -948,7 +948,7 @@ fn draw_all(&mut self, data: impl Iterator<Item = u8>) {
// nul-terminated string.
let url_cstr: &CStr = unsafe { CStr::from_char_ptr(url) };
let segments = &[
- &Segment::Binary(url_cstr.as_bytes()),
+ &Segment::Binary(url_cstr.to_bytes()),
&Segment::Numeric(&data_slice[0..data_len]),
];
match EncodedMsg::new(segments, tmp_slice) {

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:05 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Acked-by: Danilo Krummrich <da...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/auxiliary.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/rust/kernel/auxiliary.rs b/rust/kernel/auxiliary.rs
index 4749fb6bffef..58be09871397 100644
--- a/rust/kernel/auxiliary.rs
+++ b/rust/kernel/auxiliary.rs
@@ -105,8 +105,8 @@ macro_rules! module_auxiliary_driver {
impl DeviceId {
/// Create a new [`DeviceId`] from name.
pub const fn new(modname: &'static CStr, name: &'static CStr) -> Self {
- let name = name.as_bytes_with_nul();
- let modname = modname.as_bytes_with_nul();
+ let name = name.to_bytes_with_nul();
+ let modname = modname.to_bytes_with_nul();

// TODO: Replace with `bindings::auxiliary_device_id::default()` once stabilized for
// `const`.

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:08 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Also avoid `Deref<Target=BStr> for CStr` as that impl doesn't exist on
`core::ffi::CStr`.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
Acked-by: Andreas Hindborg <a.hin...@kernel.org>
---
rust/kernel/configfs.rs | 4 ++--
samples/rust/rust_configfs.rs | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs
index 2736b798cdc6..9fb5ef825e41 100644
--- a/rust/kernel/configfs.rs
+++ b/rust/kernel/configfs.rs
@@ -263,7 +263,7 @@ pub fn new(
try_pin_init!(Self {
group <- pin_init::init_zeroed().chain(|v: &mut Opaque<bindings::config_group>| {
let place = v.get();
- let name = name.as_bytes_with_nul().as_ptr();
+ let name = name.to_bytes_with_nul().as_ptr();
// SAFETY: It is safe to initialize a group once it has been zeroed.
unsafe {
bindings::config_group_init_type_name(place, name.cast(), item_type.as_ptr())
@@ -613,7 +613,7 @@ impl<const ID: u64, O, Data> Attribute<ID, O, Data>
pub const fn new(name: &'static CStr) -> Self {
Self {
attribute: Opaque::new(bindings::configfs_attribute {
- ca_name: name.as_char_ptr(),
+ ca_name: crate::str::as_char_ptr_in_const_context(name),
ca_owner: core::ptr::null_mut(),
ca_mode: 0o660,
show: Some(Self::show),
diff --git a/samples/rust/rust_configfs.rs b/samples/rust/rust_configfs.rs
index af04bfa35cb2..5005453f874d 100644
--- a/samples/rust/rust_configfs.rs
+++ b/samples/rust/rust_configfs.rs
@@ -94,7 +94,7 @@ impl configfs::AttributeOperations<0> for Configuration {

fn show(container: &Configuration, page: &mut [u8; PAGE_SIZE]) -> Result<usize> {
pr_info!("Show message\n");
- let data = container.message;
+ let data = container.message.to_bytes();
page[0..data.len()].copy_from_slice(data);
Ok(data.len())
}

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:10 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
Acked-by: Viresh Kumar <viresh...@linaro.org>
---
rust/kernel/cpufreq.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/kernel/cpufreq.rs b/rust/kernel/cpufreq.rs
index afc15e72a7c3..2bdf9ae00ffe 100644
--- a/rust/kernel/cpufreq.rs
+++ b/rust/kernel/cpufreq.rs
@@ -1018,7 +1018,7 @@ impl<T: Driver> Registration<T> {
};

const fn copy_name(name: &'static CStr) -> [c_char; CPUFREQ_NAME_LEN] {
- let src = name.as_bytes_with_nul();
+ let src = name.to_bytes_with_nul();
let mut dst = [0; CPUFREQ_NAME_LEN];

build_assert!(src.len() <= CPUFREQ_NAME_LEN);

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:12 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Acked-by: Danilo Krummrich <da...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/drm/device.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/rust/kernel/drm/device.rs b/rust/kernel/drm/device.rs
index 3bb7c83966cf..4a51909ccc76 100644
--- a/rust/kernel/drm/device.rs
+++ b/rust/kernel/drm/device.rs
@@ -83,8 +83,8 @@ impl<T: drm::Driver> Device<T> {
major: T::INFO.major,
minor: T::INFO.minor,
patchlevel: T::INFO.patchlevel,
- name: T::INFO.name.as_char_ptr().cast_mut(),
- desc: T::INFO.desc.as_char_ptr().cast_mut(),
+ name: crate::str::as_char_ptr_in_const_context(T::INFO.name).cast_mut(),
+ desc: crate::str::as_char_ptr_in_const_context(T::INFO.desc).cast_mut(),

driver_features: drm::driver::FEAT_GEM,
ioctls: T::IOCTLS.as_ptr(),

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:14 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Acked-by: Danilo Krummrich <da...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/firmware.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/kernel/firmware.rs b/rust/kernel/firmware.rs
index 1abab5b2f052..94e6bb88b903 100644
--- a/rust/kernel/firmware.rs
+++ b/rust/kernel/firmware.rs
@@ -291,7 +291,7 @@ const fn push_module_name(self) -> Self {
let module_name = this.module_name;

if !this.module_name.is_empty() {
- this = this.push_internal(module_name.as_bytes_with_nul());
+ this = this.push_internal(module_name.to_bytes_with_nul());

if N != 0 {
// Re-use the space taken by the NULL terminator and swap it with the '.' separator.

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:18 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/kunit.rs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
index 41efd87595d6..5866cff072f9 100644
--- a/rust/kernel/kunit.rs
+++ b/rust/kernel/kunit.rs
@@ -102,12 +102,12 @@ unsafe impl Sync for Location {}
unsafe impl Sync for UnaryAssert {}

static LOCATION: Location = Location($crate::bindings::kunit_loc {
- file: FILE.as_char_ptr(),
+ file: $crate::str::as_char_ptr_in_const_context(FILE),
line: LINE,
});
static ASSERTION: UnaryAssert = UnaryAssert($crate::bindings::kunit_unary_assert {
assert: $crate::bindings::kunit_assert {},
- condition: CONDITION.as_char_ptr(),
+ condition: $crate::str::as_char_ptr_in_const_context(CONDITION),
expected_true: true,
});

@@ -202,7 +202,7 @@ pub const fn kunit_case(
) -> kernel::bindings::kunit_case {
kernel::bindings::kunit_case {
run_case: Some(run_case),
- name: name.as_char_ptr(),
+ name: kernel::str::as_char_ptr_in_const_context(name),
attr: kernel::bindings::kunit_attributes {
speed: kernel::bindings::kunit_speed_KUNIT_SPEED_NORMAL,
},

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:20 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/miscdevice.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/kernel/miscdevice.rs b/rust/kernel/miscdevice.rs
index 6373fe183b27..d3aa7d25afad 100644
--- a/rust/kernel/miscdevice.rs
+++ b/rust/kernel/miscdevice.rs
@@ -34,7 +34,7 @@ pub const fn into_raw<T: MiscDevice>(self) -> bindings::miscdevice {
// SAFETY: All zeros is valid for this C type.
let mut result: bindings::miscdevice = unsafe { MaybeUninit::zeroed().assume_init() };
result.minor = bindings::MISC_DYNAMIC_MINOR as ffi::c_int;
- result.name = self.name.as_char_ptr();
+ result.name = crate::str::as_char_ptr_in_const_context(self.name);
result.fops = MiscdeviceVTable::<T>::build();
result
}

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:22 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/net/phy.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/kernel/net/phy.rs b/rust/kernel/net/phy.rs
index 7de5cc7a0eee..be1027b7961b 100644
--- a/rust/kernel/net/phy.rs
+++ b/rust/kernel/net/phy.rs
@@ -497,7 +497,7 @@ unsafe impl Sync for DriverVTable {}
pub const fn create_phy_driver<T: Driver>() -> DriverVTable {
// INVARIANT: All the fields of `struct phy_driver` are initialized properly.
DriverVTable(Opaque::new(bindings::phy_driver {
- name: T::NAME.as_char_ptr().cast_mut(),
+ name: crate::str::as_char_ptr_in_const_context(T::NAME).cast_mut(),
flags: T::FLAGS,
phy_id: T::PHY_DEVICE_ID.id(),
phy_id_mask: T::PHY_DEVICE_ID.mask_as_int(),

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:26 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Link: https://github.com/Rust-for-Linux/linux/issues/1075
Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Reviewed-by: Benno Lossin <los...@kernel.org>
Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/of.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/kernel/of.rs b/rust/kernel/of.rs
index b76b35265df2..58b20c367f99 100644
--- a/rust/kernel/of.rs
+++ b/rust/kernel/of.rs
@@ -34,7 +34,7 @@ fn index(&self) -> usize {
impl DeviceId {
/// Create a new device id from an OF 'compatible' string.
pub const fn new(compatible: &'static CStr) -> Self {
- let src = compatible.as_bytes_with_nul();
+ let src = compatible.to_bytes_with_nul();
// Replace with `bindings::of_device_id::default()` once stabilized for `const`.
// SAFETY: FFI type is valid to be zero-initialized.
let mut of: bindings::of_device_id = unsafe { core::mem::zeroed() };

--
2.50.1

Tamir Duberstein

unread,
Aug 13, 2025, 11:42:27 AMAug 13
to Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org, Tamir Duberstein
Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
avoid methods that only exist on the latter.

Signed-off-by: Tamir Duberstein <tam...@gmail.com>
---
rust/kernel/acpi.rs | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/rust/kernel/acpi.rs b/rust/kernel/acpi.rs
index 7ae317368b00..37e1161c1298 100644
--- a/rust/kernel/acpi.rs
+++ b/rust/kernel/acpi.rs
@@ -37,11 +37,8 @@ impl DeviceId {
/// Create a new device id from an ACPI 'id' string.
#[inline(always)]
pub const fn new(id: &'static CStr) -> Self {
- build_assert!(
- id.len_with_nul() <= Self::ACPI_ID_LEN,
- "ID exceeds 16 bytes"
- );
- let src = id.as_bytes_with_nul();
+ let src = id.to_bytes_with_nul();
+ build_assert!(src.len() <= Self::ACPI_ID_LEN, "ID exceeds 16 bytes");
// Replace with `bindings::acpi_device_id::default()` once stabilized for `const`.
// SAFETY: FFI type is valid to be zero-initialized.
let mut acpi: bindings::acpi_device_id = unsafe { core::mem::zeroed() };

--
2.50.1

Jocelyn Falempe

unread,
Aug 14, 2025, 2:41:45 AMAug 14
to Tamir Duberstein, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org
On 13/08/2025 17:41, Tamir Duberstein wrote:
> Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
> avoid methods that only exist on the latter.

Thanks, it looks good to me.

Acked-by: Jocelyn Falempe <jfal...@redhat.com>

Benno Lossin

unread,
Aug 14, 2025, 4:10:41 AMAug 14
to Tamir Duberstein, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org
On Wed Aug 13, 2025 at 5:42 PM CEST, Tamir Duberstein wrote:
> Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by
> avoid methods that only exist on the latter.
>
> Signed-off-by: Tamir Duberstein <tam...@gmail.com>

Reviewed-by: Benno Lossin <los...@kernel.org>

---
Cheers,
Benno

Miguel Ojeda

unread,
Sep 16, 2025, 5:25:53 AM (8 days ago) Sep 16
to Tamir Duberstein, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Leon Romanovsky, Breno Leitao, Rafael J. Wysocki, Viresh Kumar, Luis Chamberlain, Russ Weight, Brendan Higgins, David Gow, Rae Moar, FUJITA Tomonori, Rob Herring, Saravana Kannan, Jocelyn Falempe, Javier Martinez Canillas, Arnd Bergmann, Len Brown, dri-...@lists.freedesktop.org, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, linu...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, net...@vger.kernel.org, devic...@vger.kernel.org, linux...@vger.kernel.org
On Wed, Aug 13, 2025 at 5:42 PM Tamir Duberstein <tam...@gmail.com> wrote:
>
> This is series 2b/5 of the migration to `core::ffi::CStr`[0].
> 20250704-core-cstr-pre...@gmail.com.
>
> This series depends on the prior series[0] and is intended to go through
> the rust tree to reduce the number of release cycles required to
> complete the work.
>
> Subsystem maintainers: I would appreciate your `Acked-by`s so that this
> can be taken through Miguel's tree (where the other series must go).
>
> [0] https://lore.kernel.org/all/20250704-core-cstr-pre...@gmail.com/
>
> Signed-off-by: Tamir Duberstein <tam...@gmail.com>

Applied to `rust-next` -- thanks everyone!

If any maintainer has a problem with this, please shout.

Cheers,
Miguel
Reply all
Reply to author
Forward
0 new messages