linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/11] rust: use `core::ffi::CStr` method names
@ 2025-08-13 15:41 Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 01/11] drm/panic: " Tamir Duberstein
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	Tamir Duberstein

This is series 2b/5 of the migration to `core::ffi::CStr`[0].
20250704-core-cstr-prepare-v1-0-a91524037783@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-prepare-v1-0-a91524037783@gmail.com/

Signed-off-by: Tamir Duberstein <tamird@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-fanout-1-v2-0-e1cb53f6d233@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-fanout-1-v1-0-fd793b3e58a2@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 <tamird@gmail.com>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v3 01/11] drm/panic: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-14  6:41   ` Jocelyn Falempe
  2025-08-13 15:41 ` [PATCH v3 02/11] rust: auxiliary: " Tamir Duberstein
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 02/11] rust: auxiliary: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 01/11] drm/panic: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 03/11] rust: configfs: " Tamir Duberstein
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 03/11] rust: configfs: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 01/11] drm/panic: " Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 02/11] rust: auxiliary: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 04/11] rust: cpufreq: " Tamir Duberstein
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Acked-by: Andreas Hindborg <a.hindborg@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 04/11] rust: cpufreq: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (2 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 03/11] rust: configfs: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 05/11] rust: drm: " Tamir Duberstein
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Acked-by: Viresh Kumar <viresh.kumar@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 05/11] rust: drm: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (3 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 04/11] rust: cpufreq: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 06/11] rust: firmware: " Tamir Duberstein
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 06/11] rust: firmware: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (4 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 05/11] rust: drm: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 07/11] rust: kunit: " Tamir Duberstein
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 07/11] rust: kunit: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (5 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 06/11] rust: firmware: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:41 ` [PATCH v3 08/11] rust: miscdevice: " Tamir Duberstein
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 08/11] rust: miscdevice: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (6 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 07/11] rust: kunit: " Tamir Duberstein
@ 2025-08-13 15:41 ` Tamir Duberstein
  2025-08-13 15:42 ` [PATCH v3 09/11] rust: net: " Tamir Duberstein
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 09/11] rust: net: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (7 preceding siblings ...)
  2025-08-13 15:41 ` [PATCH v3 08/11] rust: miscdevice: " Tamir Duberstein
@ 2025-08-13 15:42 ` Tamir Duberstein
  2025-08-13 15:42 ` [PATCH v3 10/11] rust: of: " Tamir Duberstein
  2025-08-13 15:42 ` [PATCH v3 11/11] rust: acpi: " Tamir Duberstein
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:42 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 10/11] rust: of: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (8 preceding siblings ...)
  2025-08-13 15:42 ` [PATCH v3 09/11] rust: net: " Tamir Duberstein
@ 2025-08-13 15:42 ` Tamir Duberstein
  2025-08-13 15:42 ` [PATCH v3 11/11] rust: acpi: " Tamir Duberstein
  10 siblings, 0 replies; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:42 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v3 11/11] rust: acpi: use `core::ffi::CStr` method names
  2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
                   ` (9 preceding siblings ...)
  2025-08-13 15:42 ` [PATCH v3 10/11] rust: of: " Tamir Duberstein
@ 2025-08-13 15:42 ` Tamir Duberstein
  2025-08-14  8:10   ` Benno Lossin
  10 siblings, 1 reply; 14+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:42 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi,
	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 <tamird@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


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v3 01/11] drm/panic: use `core::ffi::CStr` method names
  2025-08-13 15:41 ` [PATCH v3 01/11] drm/panic: " Tamir Duberstein
@ 2025-08-14  6:41   ` Jocelyn Falempe
  0 siblings, 0 replies; 14+ messages in thread
From: Jocelyn Falempe @ 2025-08-14  6:41 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi

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 <jfalempe@redhat.com>

> 
> Link: https://github.com/Rust-for-Linux/linux/issues/1075
> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
> Reviewed-by: Benno Lossin <lossin@kernel.org>
> Acked-by: Danilo Krummrich <dakr@kernel.org>
> Signed-off-by: Tamir Duberstein <tamird@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) {
> 


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v3 11/11] rust: acpi: use `core::ffi::CStr` method names
  2025-08-13 15:42 ` [PATCH v3 11/11] rust: acpi: " Tamir Duberstein
@ 2025-08-14  8:10   ` Benno Lossin
  0 siblings, 0 replies; 14+ messages in thread
From: Benno Lossin @ 2025-08-14  8:10 UTC (permalink / raw)
  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
  Cc: dri-devel, linux-kernel, rust-for-linux, linux-pm,
	linux-kselftest, kunit-dev, netdev, devicetree, linux-acpi

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 <tamird@gmail.com>

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

---
Cheers,
Benno

> ---
>  rust/kernel/acpi.rs | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-08-14  8:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-13 15:41 [PATCH v3 00/11] rust: use `core::ffi::CStr` method names Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 01/11] drm/panic: " Tamir Duberstein
2025-08-14  6:41   ` Jocelyn Falempe
2025-08-13 15:41 ` [PATCH v3 02/11] rust: auxiliary: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 03/11] rust: configfs: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 04/11] rust: cpufreq: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 05/11] rust: drm: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 06/11] rust: firmware: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 07/11] rust: kunit: " Tamir Duberstein
2025-08-13 15:41 ` [PATCH v3 08/11] rust: miscdevice: " Tamir Duberstein
2025-08-13 15:42 ` [PATCH v3 09/11] rust: net: " Tamir Duberstein
2025-08-13 15:42 ` [PATCH v3 10/11] rust: of: " Tamir Duberstein
2025-08-13 15:42 ` [PATCH v3 11/11] rust: acpi: " Tamir Duberstein
2025-08-14  8:10   ` Benno Lossin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).