* [PATCH v2 01/19] drivers: net: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 02/19] gpu: nova-core: " Tamir Duberstein
` (14 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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>
---
drivers/net/phy/ax88796b_rust.rs | 7 +++----
drivers/net/phy/qt2025.rs | 5 ++---
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/net/phy/ax88796b_rust.rs b/drivers/net/phy/ax88796b_rust.rs
index bc73ebccc2aa..2d24628a4e58 100644
--- a/drivers/net/phy/ax88796b_rust.rs
+++ b/drivers/net/phy/ax88796b_rust.rs
@@ -5,7 +5,6 @@
//!
//! C version of this driver: [`drivers/net/phy/ax88796b.c`](./ax88796b.c)
use kernel::{
- c_str,
net::phy::{self, reg::C22, DeviceId, Driver},
prelude::*,
uapi,
@@ -41,7 +40,7 @@ fn asix_soft_reset(dev: &mut phy::Device) -> Result {
#[vtable]
impl Driver for PhyAX88772A {
const FLAGS: u32 = phy::flags::IS_INTERNAL;
- const NAME: &'static CStr = c_str!("Asix Electronics AX88772A");
+ const NAME: &'static CStr = c"Asix Electronics AX88772A";
const PHY_DEVICE_ID: DeviceId = DeviceId::new_with_exact_mask(0x003b1861);
// AX88772A is not working properly with some old switches (NETGEAR EN 108TP):
@@ -105,7 +104,7 @@ fn link_change_notify(dev: &mut phy::Device) {
#[vtable]
impl Driver for PhyAX88772C {
const FLAGS: u32 = phy::flags::IS_INTERNAL;
- const NAME: &'static CStr = c_str!("Asix Electronics AX88772C");
+ const NAME: &'static CStr = c"Asix Electronics AX88772C";
const PHY_DEVICE_ID: DeviceId = DeviceId::new_with_exact_mask(0x003b1881);
fn suspend(dev: &mut phy::Device) -> Result {
@@ -125,7 +124,7 @@ fn soft_reset(dev: &mut phy::Device) -> Result {
#[vtable]
impl Driver for PhyAX88796B {
- const NAME: &'static CStr = c_str!("Asix Electronics AX88796B");
+ const NAME: &'static CStr = c"Asix Electronics AX88796B";
const PHY_DEVICE_ID: DeviceId = DeviceId::new_with_model_mask(0x003b1841);
fn soft_reset(dev: &mut phy::Device) -> Result {
diff --git a/drivers/net/phy/qt2025.rs b/drivers/net/phy/qt2025.rs
index 0b9400dcb4c1..9ccc75f70219 100644
--- a/drivers/net/phy/qt2025.rs
+++ b/drivers/net/phy/qt2025.rs
@@ -9,7 +9,6 @@
//!
//! The QT2025 PHY integrates an Intel 8051 micro-controller.
-use kernel::c_str;
use kernel::error::code;
use kernel::firmware::Firmware;
use kernel::net::phy::{
@@ -36,7 +35,7 @@
#[vtable]
impl Driver for PhyQT2025 {
- const NAME: &'static CStr = c_str!("QT2025 10Gpbs SFP+");
+ const NAME: &'static CStr = c"QT2025 10Gpbs SFP+";
const PHY_DEVICE_ID: phy::DeviceId = phy::DeviceId::new_with_exact_mask(0x0043a400);
fn probe(dev: &mut phy::Device) -> Result<()> {
@@ -69,7 +68,7 @@ fn probe(dev: &mut phy::Device) -> Result<()> {
// The micro-controller will start running from the boot ROM.
dev.write(C45::new(Mmd::PCS, 0xe854), 0x00c0)?;
- let fw = Firmware::request(c_str!("qt2025-2.0.3.3.fw"), dev.as_ref())?;
+ let fw = Firmware::request(c"qt2025-2.0.3.3.fw", dev.as_ref())?;
if fw.data().len() > SZ_16K + SZ_8K {
return Err(code::EFBIG);
}
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 02/19] gpu: nova-core: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 01/19] drivers: net: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-15 11:11 ` Alexandre Courbot
2025-08-13 15:59 ` [PATCH v2 03/19] rust: auxiliary: " Tamir Duberstein
` (13 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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/nova/driver.rs | 10 +++++-----
drivers/gpu/nova-core/driver.rs | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/nova/driver.rs b/drivers/gpu/drm/nova/driver.rs
index b28b2e05cc15..87480ee8dbae 100644
--- a/drivers/gpu/drm/nova/driver.rs
+++ b/drivers/gpu/drm/nova/driver.rs
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
-use kernel::{auxiliary, c_str, device::Core, drm, drm::gem, drm::ioctl, prelude::*, types::ARef};
+use kernel::{auxiliary, device::Core, drm, drm::gem, drm::ioctl, prelude::*, types::ARef};
use crate::file::File;
use crate::gem::NovaObject;
@@ -22,12 +22,12 @@ pub(crate) struct NovaData {
major: 0,
minor: 0,
patchlevel: 0,
- name: c_str!("nova"),
- desc: c_str!("Nvidia Graphics"),
+ name: c"nova",
+ desc: c"Nvidia Graphics",
};
-const NOVA_CORE_MODULE_NAME: &CStr = c_str!("NovaCore");
-const AUXILIARY_NAME: &CStr = c_str!("nova-drm");
+const NOVA_CORE_MODULE_NAME: &CStr = c"NovaCore";
+const AUXILIARY_NAME: &CStr = c"nova-drm";
kernel::auxiliary_device_table!(
AUX_TABLE,
diff --git a/drivers/gpu/nova-core/driver.rs b/drivers/gpu/nova-core/driver.rs
index 274989ea1fb4..2f1a37be3107 100644
--- a/drivers/gpu/nova-core/driver.rs
+++ b/drivers/gpu/nova-core/driver.rs
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
-use kernel::{auxiliary, bindings, c_str, device::Core, pci, prelude::*, sizes::SZ_16M, sync::Arc};
+use kernel::{auxiliary, bindings, device::Core, pci, prelude::*, sizes::SZ_16M, sync::Arc};
use crate::gpu::Gpu;
@@ -35,7 +35,7 @@ fn probe(pdev: &pci::Device<Core>, _info: &Self::IdInfo) -> Result<Pin<KBox<Self
pdev.set_master();
let bar = Arc::pin_init(
- pdev.iomap_region_sized::<BAR0_SIZE>(0, c_str!("nova-core/bar0")),
+ pdev.iomap_region_sized::<BAR0_SIZE>(0, c"nova-core/bar0"),
GFP_KERNEL,
)?;
@@ -44,7 +44,7 @@ fn probe(pdev: &pci::Device<Core>, _info: &Self::IdInfo) -> Result<Pin<KBox<Self
gpu <- Gpu::new(pdev, bar)?,
_reg: auxiliary::Registration::new(
pdev.as_ref(),
- c_str!("nova-drm"),
+ c"nova-drm",
0, // TODO[XARR]: Once it lands, use XArray; for now we don't use the ID.
crate::MODULE_NAME
)?,
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2 02/19] gpu: nova-core: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 ` [PATCH v2 02/19] gpu: nova-core: " Tamir Duberstein
@ 2025-08-15 11:11 ` Alexandre Courbot
0 siblings, 0 replies; 22+ messages in thread
From: Alexandre Courbot @ 2025-08-15 11:11 UTC (permalink / raw)
To: Tamir Duberstein, Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda,
Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
Danilo Krummrich, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, FUJITA Tomonori,
Andrew Lunn, Heiner Kallweit, Russell King, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Michael Turquette,
Stephen Boyd, Breno Leitao, Greg Kroah-Hartman, Luis Chamberlain,
Russ Weight, Dave Ertman, Ira Weiny, Leon Romanovsky,
Bjorn Helgaas, Krzysztof Wilczyński, Arnd Bergmann,
Brendan Higgins, David Gow, Rae Moar, Jens Axboe, Alexander Viro,
Christian Brauner, Jan Kara, Liam Girdwood, Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel
On Thu Aug 14, 2025 at 12:59 AM JST, Tamir Duberstein wrote:
> C-String literals were added in Rust 1.77. Replace instances of
> `kernel::c_str!` with C-String literals where possible.
>
> 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>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 03/19] rust: auxiliary: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 01/19] drivers: net: " Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 02/19] gpu: nova-core: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 04/19] rust: clk: " Tamir Duberstein
` (12 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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>
---
samples/rust/rust_driver_auxiliary.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/samples/rust/rust_driver_auxiliary.rs b/samples/rust/rust_driver_auxiliary.rs
index f2a820683fc3..7c916eb11b64 100644
--- a/samples/rust/rust_driver_auxiliary.rs
+++ b/samples/rust/rust_driver_auxiliary.rs
@@ -5,13 +5,13 @@
//! To make this driver probe, QEMU must be run with `-device pci-testdev`.
use kernel::{
- auxiliary, bindings, c_str, device::Core, driver, error::Error, pci, prelude::*, InPlaceModule,
+ auxiliary, bindings, device::Core, driver, error::Error, pci, prelude::*, InPlaceModule,
};
use pin_init::PinInit;
const MODULE_NAME: &CStr = <LocalModule as kernel::ModuleMetadata>::NAME;
-const AUXILIARY_NAME: &CStr = c_str!("auxiliary");
+const AUXILIARY_NAME: &CStr = c"auxiliary";
struct AuxiliaryDriver;
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 04/19] rust: clk: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (2 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 03/19] rust: auxiliary: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-14 4:15 ` Viresh Kumar
2025-08-13 15:59 ` [PATCH v2 05/19] rust: configfs: " Tamir Duberstein
` (11 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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: Stephen Boyd <sboyd@kernel.org>
---
rust/kernel/clk.rs | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/rust/kernel/clk.rs b/rust/kernel/clk.rs
index 1e6c8c42fb3a..09469277e95b 100644
--- a/rust/kernel/clk.rs
+++ b/rust/kernel/clk.rs
@@ -104,13 +104,12 @@ mod common_clk {
/// The following example demonstrates how to obtain and configure a clock for a device.
///
/// ```
- /// use kernel::c_str;
/// use kernel::clk::{Clk, Hertz};
/// use kernel::device::Device;
/// use kernel::error::Result;
///
/// fn configure_clk(dev: &Device) -> Result {
- /// let clk = Clk::get(dev, Some(c_str!("apb_clk")))?;
+ /// let clk = Clk::get(dev, Some(c"apb_clk"))?;
///
/// clk.prepare_enable()?;
///
@@ -272,13 +271,12 @@ fn drop(&mut self) {
/// device. The code functions correctly whether or not the clock is available.
///
/// ```
- /// use kernel::c_str;
/// use kernel::clk::{OptionalClk, Hertz};
/// use kernel::device::Device;
/// use kernel::error::Result;
///
/// fn configure_clk(dev: &Device) -> Result {
- /// let clk = OptionalClk::get(dev, Some(c_str!("apb_clk")))?;
+ /// let clk = OptionalClk::get(dev, Some(c"apb_clk"))?;
///
/// clk.prepare_enable()?;
///
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2 04/19] rust: clk: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 ` [PATCH v2 04/19] rust: clk: " Tamir Duberstein
@ 2025-08-14 4:15 ` Viresh Kumar
0 siblings, 0 replies; 22+ messages in thread
From: Viresh Kumar @ 2025-08-14 4:15 UTC (permalink / raw)
To: Tamir Duberstein
Cc: Rafael J. Wysocki, Miguel Ojeda, Alex Gaynor, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, Danilo Krummrich, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
FUJITA Tomonori, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Michael Turquette, Stephen Boyd, Breno Leitao, Greg Kroah-Hartman,
Luis Chamberlain, Russ Weight, Dave Ertman, Ira Weiny,
Leon Romanovsky, Bjorn Helgaas, Krzysztof Wilczyński,
Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Jens Axboe,
Alexandre Courbot, Alexander Viro, Christian Brauner, Jan Kara,
Liam Girdwood, Mark Brown, linux-pm, linux-kernel, rust-for-linux,
nouveau, dri-devel, netdev, linux-clk, linux-pci, linux-kselftest,
kunit-dev, linux-block, linux-fsdevel
On 13-08-25, 11:59, Tamir Duberstein wrote:
> C-String literals were added in Rust 1.77. Replace instances of
> `kernel::c_str!` with C-String literals where possible.
>
> 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: Stephen Boyd <sboyd@kernel.org>
> ---
> rust/kernel/clk.rs | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
--
viresh
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 05/19] rust: configfs: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (3 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 04/19] rust: clk: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 06/19] rust: cpufreq: " Tamir Duberstein
` (10 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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 | 9 +++++----
samples/rust/rust_configfs.rs | 5 ++---
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs
index 9fb5ef825e41..69bb1fb53543 100644
--- a/rust/kernel/configfs.rs
+++ b/rust/kernel/configfs.rs
@@ -21,7 +21,6 @@
//!
//! ```ignore
//! use kernel::alloc::flags;
-//! use kernel::c_str;
//! use kernel::configfs_attrs;
//! use kernel::configfs;
//! use kernel::new_mutex;
@@ -50,7 +49,7 @@
//!
//! try_pin_init!(Self {
//! config <- configfs::Subsystem::new(
-//! c_str!("rust_configfs"), item_type, Configuration::new()
+//! c"rust_configfs", item_type, Configuration::new()
//! ),
//! })
//! }
@@ -66,7 +65,7 @@
//! impl Configuration {
//! fn new() -> impl PinInit<Self, Error> {
//! try_pin_init!(Self {
-//! message: c_str!("Hello World\n"),
+//! message: c"Hello World\n",
//! bar <- new_mutex!((KBox::new([0; PAGE_SIZE], flags::GFP_KERNEL)?, 0)),
//! })
//! }
@@ -1000,7 +999,9 @@ macro_rules! configfs_attrs {
static [< $data:upper _ $name:upper _ATTR >]:
$crate::configfs::Attribute<$attr, $data, $data> =
unsafe {
- $crate::configfs::Attribute::new(c_str!(::core::stringify!($name)))
+ $crate::configfs::Attribute::new(
+ $crate::c_str!(::core::stringify!($name)),
+ )
};
)*
diff --git a/samples/rust/rust_configfs.rs b/samples/rust/rust_configfs.rs
index 5005453f874d..ea84c23b784b 100644
--- a/samples/rust/rust_configfs.rs
+++ b/samples/rust/rust_configfs.rs
@@ -3,7 +3,6 @@
//! Rust configfs sample.
use kernel::alloc::flags;
-use kernel::c_str;
use kernel::configfs;
use kernel::configfs_attrs;
use kernel::new_mutex;
@@ -35,7 +34,7 @@ struct Configuration {
impl Configuration {
fn new() -> impl PinInit<Self, Error> {
try_pin_init!(Self {
- message: c_str!("Hello World\n"),
+ message: c"Hello World\n",
bar <- new_mutex!((KBox::new([0; PAGE_SIZE], flags::GFP_KERNEL)?, 0)),
})
}
@@ -61,7 +60,7 @@ fn init(_module: &'static ThisModule) -> impl PinInit<Self, Error> {
try_pin_init!(Self {
config <- configfs::Subsystem::new(
- c_str!("rust_configfs"), item_type, Configuration::new()
+ c"rust_configfs", item_type, Configuration::new()
),
})
}
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 06/19] rust: cpufreq: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (4 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 05/19] rust: configfs: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-14 4:15 ` Viresh Kumar
2025-08-13 15:59 ` [PATCH v2 07/19] rust: device: " Tamir Duberstein
` (9 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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>
---
drivers/cpufreq/rcpufreq_dt.rs | 5 ++---
rust/kernel/cpufreq.rs | 3 +--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/cpufreq/rcpufreq_dt.rs b/drivers/cpufreq/rcpufreq_dt.rs
index 7e1fbf9a091f..1120a8f5edd7 100644
--- a/drivers/cpufreq/rcpufreq_dt.rs
+++ b/drivers/cpufreq/rcpufreq_dt.rs
@@ -3,7 +3,6 @@
//! Rust based implementation of the cpufreq-dt driver.
use kernel::{
- c_str,
clk::Clk,
cpu, cpufreq,
cpumask::CpumaskVar,
@@ -56,7 +55,7 @@ impl opp::ConfigOps for CPUFreqDTDriver {}
#[vtable]
impl cpufreq::Driver for CPUFreqDTDriver {
- const NAME: &'static CStr = c_str!("cpufreq-dt");
+ const NAME: &'static CStr = c"cpufreq-dt";
const FLAGS: u16 = cpufreq::flags::NEED_INITIAL_FREQ_CHECK | cpufreq::flags::IS_COOLING_DEV;
const BOOST_ENABLED: bool = true;
@@ -201,7 +200,7 @@ fn register_em(policy: &mut cpufreq::Policy) {
OF_TABLE,
MODULE_OF_TABLE,
<CPUFreqDTDriver as platform::Driver>::IdInfo,
- [(of::DeviceId::new(c_str!("operating-points-v2")), ())]
+ [(of::DeviceId::new(c"operating-points-v2"), ())]
);
impl platform::Driver for CPUFreqDTDriver {
diff --git a/rust/kernel/cpufreq.rs b/rust/kernel/cpufreq.rs
index 2bdf9ae00ffe..c59b84820684 100644
--- a/rust/kernel/cpufreq.rs
+++ b/rust/kernel/cpufreq.rs
@@ -841,7 +841,6 @@ fn register_em(_policy: &mut Policy) {
/// ```
/// use kernel::{
/// cpufreq,
-/// c_str,
/// device::{Core, Device},
/// macros::vtable,
/// of, platform,
@@ -854,7 +853,7 @@ fn register_em(_policy: &mut Policy) {
///
/// #[vtable]
/// impl cpufreq::Driver for SampleDriver {
-/// const NAME: &'static CStr = c_str!("cpufreq-sample");
+/// const NAME: &'static CStr = c"cpufreq-sample";
/// const FLAGS: u16 = cpufreq::flags::NEED_INITIAL_FREQ_CHECK | cpufreq::flags::IS_COOLING_DEV;
/// const BOOST_ENABLED: bool = true;
///
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2 06/19] rust: cpufreq: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 ` [PATCH v2 06/19] rust: cpufreq: " Tamir Duberstein
@ 2025-08-14 4:15 ` Viresh Kumar
0 siblings, 0 replies; 22+ messages in thread
From: Viresh Kumar @ 2025-08-14 4:15 UTC (permalink / raw)
To: Tamir Duberstein
Cc: Rafael J. Wysocki, Miguel Ojeda, Alex Gaynor, Boqun Feng,
Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Alice Ryhl, Trevor Gross, Danilo Krummrich, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
FUJITA Tomonori, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Michael Turquette, Stephen Boyd, Breno Leitao, Greg Kroah-Hartman,
Luis Chamberlain, Russ Weight, Dave Ertman, Ira Weiny,
Leon Romanovsky, Bjorn Helgaas, Krzysztof Wilczyński,
Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Jens Axboe,
Alexandre Courbot, Alexander Viro, Christian Brauner, Jan Kara,
Liam Girdwood, Mark Brown, linux-pm, linux-kernel, rust-for-linux,
nouveau, dri-devel, netdev, linux-clk, linux-pci, linux-kselftest,
kunit-dev, linux-block, linux-fsdevel
On 13-08-25, 11:59, Tamir Duberstein wrote:
> C-String literals were added in Rust 1.77. Replace instances of
> `kernel::c_str!` with C-String literals where possible.
>
> 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>
> ---
> drivers/cpufreq/rcpufreq_dt.rs | 5 ++---
> rust/kernel/cpufreq.rs | 3 +--
> 2 files changed, 3 insertions(+), 5 deletions(-)
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
--
viresh
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 07/19] rust: device: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (5 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 06/19] rust: cpufreq: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 08/19] rust: firmware: " Tamir Duberstein
` (8 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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/device.rs | 4 +---
rust/kernel/device/property.rs | 6 +++---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs
index 449776474044..ba83cf3624fd 100644
--- a/rust/kernel/device.rs
+++ b/rust/kernel/device.rs
@@ -10,8 +10,6 @@
};
use core::{marker::PhantomData, ptr};
-#[cfg(CONFIG_PRINTK)]
-use crate::c_str;
use crate::str::CStrExt as _;
pub mod property;
@@ -265,7 +263,7 @@ unsafe fn printk(&self, klevel: &[u8], msg: fmt::Arguments<'_>) {
bindings::_dev_printk(
klevel.as_ptr().cast::<crate::ffi::c_char>(),
self.as_raw(),
- c_str!("%pA").as_char_ptr(),
+ c"%pA".as_char_ptr(),
core::ptr::from_ref(&msg).cast::<crate::ffi::c_void>(),
)
};
diff --git a/rust/kernel/device/property.rs b/rust/kernel/device/property.rs
index 3a332a8c53a9..3eb3f36d66d0 100644
--- a/rust/kernel/device/property.rs
+++ b/rust/kernel/device/property.rs
@@ -178,11 +178,11 @@ pub fn property_count_elem<T: PropertyInt>(&self, name: &CStr) -> Result<usize>
/// # Examples
///
/// ```
- /// # use kernel::{c_str, device::{Device, property::FwNode}, str::CString};
+ /// # use kernel::{device::{Device, property::FwNode}, str::CString};
/// fn examples(dev: &Device) -> Result {
/// let fwnode = dev.fwnode().ok_or(ENOENT)?;
- /// let b: u32 = fwnode.property_read(c_str!("some-number")).required_by(dev)?;
- /// if let Some(s) = fwnode.property_read::<CString>(c_str!("some-str")).optional() {
+ /// let b: u32 = fwnode.property_read(c"some-number").required_by(dev)?;
+ /// if let Some(s) = fwnode.property_read::<CString>(c"some-str").optional() {
/// // ...
/// }
/// Ok(())
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 08/19] rust: firmware: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (6 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 07/19] rust: device: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 09/19] rust: kunit: " Tamir Duberstein
` (7 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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 | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/rust/kernel/firmware.rs b/rust/kernel/firmware.rs
index 376e7e77453f..71168d8004e2 100644
--- a/rust/kernel/firmware.rs
+++ b/rust/kernel/firmware.rs
@@ -51,13 +51,13 @@ fn request_nowarn() -> Self {
/// # Examples
///
/// ```no_run
-/// # use kernel::{c_str, device::Device, firmware::Firmware};
+/// # use kernel::{device::Device, firmware::Firmware};
///
/// # fn no_run() -> Result<(), Error> {
/// # // SAFETY: *NOT* safe, just for the example to get an `ARef<Device>` instance
/// # let dev = unsafe { Device::get_device(core::ptr::null_mut()) };
///
-/// let fw = Firmware::request(c_str!("path/to/firmware.bin"), &dev)?;
+/// let fw = Firmware::request(c"path/to/firmware.bin", &dev)?;
/// let blob = fw.data();
///
/// # Ok(())
@@ -204,7 +204,7 @@ macro_rules! module_firmware {
($($builder:tt)*) => {
const _: () = {
const __MODULE_FIRMWARE_PREFIX: &'static $crate::str::CStr = if cfg!(MODULE) {
- $crate::c_str!("")
+ c""
} else {
<LocalModule as $crate::ModuleMetadata>::NAME
};
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 09/19] rust: kunit: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (7 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 08/19] rust: firmware: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 10/19] rust: macros: " Tamir Duberstein
` (6 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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 | 11 ++++-------
rust/macros/kunit.rs | 10 +++++-----
scripts/rustdoc_test_gen.rs | 4 ++--
3 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs
index 3a43886cc14e..6223a5ac801c 100644
--- a/rust/kernel/kunit.rs
+++ b/rust/kernel/kunit.rs
@@ -9,9 +9,6 @@
use crate::fmt;
use crate::prelude::*;
-#[cfg(CONFIG_PRINTK)]
-use crate::c_str;
-
/// Prints a KUnit error-level message.
///
/// Public but hidden since it should only be used from KUnit generated code.
@@ -22,7 +19,7 @@ pub fn err(args: fmt::Arguments<'_>) {
#[cfg(CONFIG_PRINTK)]
unsafe {
bindings::_printk(
- c_str!("\x013%pA").as_char_ptr(),
+ c"\x013%pA".as_char_ptr(),
core::ptr::from_ref(&args).cast::<c_void>(),
);
}
@@ -38,7 +35,7 @@ pub fn info(args: fmt::Arguments<'_>) {
#[cfg(CONFIG_PRINTK)]
unsafe {
bindings::_printk(
- c_str!("\x016%pA").as_char_ptr(),
+ c"\x016%pA".as_char_ptr(),
core::ptr::from_ref(&args).cast::<c_void>(),
);
}
@@ -60,7 +57,7 @@ macro_rules! kunit_assert {
break 'out;
}
- static FILE: &'static $crate::str::CStr = $crate::c_str!($file);
+ static FILE: &'static $crate::str::CStr = $file;
static LINE: i32 = ::core::line!() as i32 - $diff;
static CONDITION: &'static $crate::str::CStr = $crate::c_str!(stringify!($condition));
@@ -249,7 +246,7 @@ pub const fn kunit_case_null() -> kernel::bindings::kunit_case {
/// }
///
/// static mut KUNIT_TEST_CASES: [kernel::bindings::kunit_case; 2] = [
-/// kernel::kunit::kunit_case(kernel::c_str!("name"), test_fn),
+/// kernel::kunit::kunit_case(c"name", test_fn),
/// kernel::kunit::kunit_case_null(),
/// ];
/// kernel::kunit_unsafe_test_suite!(suite_name, KUNIT_TEST_CASES);
diff --git a/rust/macros/kunit.rs b/rust/macros/kunit.rs
index 81d18149a0cc..c64df1a01b9d 100644
--- a/rust/macros/kunit.rs
+++ b/rust/macros/kunit.rs
@@ -89,8 +89,8 @@ pub(crate) fn kunit_tests(attr: TokenStream, ts: TokenStream) -> TokenStream {
// unsafe extern "C" fn kunit_rust_wrapper_bar(_test: *mut ::kernel::bindings::kunit) { bar(); }
//
// static mut TEST_CASES: [::kernel::bindings::kunit_case; 3] = [
- // ::kernel::kunit::kunit_case(::kernel::c_str!("foo"), kunit_rust_wrapper_foo),
- // ::kernel::kunit::kunit_case(::kernel::c_str!("bar"), kunit_rust_wrapper_bar),
+ // ::kernel::kunit::kunit_case(c"foo", kunit_rust_wrapper_foo),
+ // ::kernel::kunit::kunit_case(c"bar", kunit_rust_wrapper_bar),
// ::kernel::kunit::kunit_case_null(),
// ];
//
@@ -109,7 +109,7 @@ pub(crate) fn kunit_tests(attr: TokenStream, ts: TokenStream) -> TokenStream {
writeln!(kunit_macros, "{kunit_wrapper}").unwrap();
writeln!(
test_cases,
- " ::kernel::kunit::kunit_case(::kernel::c_str!(\"{test}\"), {kunit_wrapper_fn_name}),"
+ " ::kernel::kunit::kunit_case(c\"{test}\", {kunit_wrapper_fn_name}),"
)
.unwrap();
writeln!(
@@ -119,7 +119,7 @@ pub(crate) fn kunit_tests(attr: TokenStream, ts: TokenStream) -> TokenStream {
#[allow(unused)]
macro_rules! assert {{
($cond:expr $(,)?) => {{{{
- kernel::kunit_assert!("{test}", "{path}", 0, $cond);
+ kernel::kunit_assert!("{test}", c"{path}", 0, $cond);
}}}}
}}
@@ -127,7 +127,7 @@ macro_rules! assert {{
#[allow(unused)]
macro_rules! assert_eq {{
($left:expr, $right:expr $(,)?) => {{{{
- kernel::kunit_assert_eq!("{test}", "{path}", 0, $left, $right);
+ kernel::kunit_assert_eq!("{test}", c"{path}", 0, $left, $right);
}}}}
}}
"#
diff --git a/scripts/rustdoc_test_gen.rs b/scripts/rustdoc_test_gen.rs
index c8f9dc2ab976..b0b70a3d0f54 100644
--- a/scripts/rustdoc_test_gen.rs
+++ b/scripts/rustdoc_test_gen.rs
@@ -174,7 +174,7 @@ pub extern "C" fn {kunit_name}(__kunit_test: *mut ::kernel::bindings::kunit) {{
macro_rules! assert {{
($cond:expr $(,)?) => {{{{
::kernel::kunit_assert!(
- "{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $cond
+ "{kunit_name}", c"{real_path}", __DOCTEST_ANCHOR - {line}, $cond
);
}}}}
}}
@@ -184,7 +184,7 @@ macro_rules! assert {{
macro_rules! assert_eq {{
($left:expr, $right:expr $(,)?) => {{{{
::kernel::kunit_assert_eq!(
- "{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $left, $right
+ "{kunit_name}", c"{real_path}", __DOCTEST_ANCHOR - {line}, $left, $right
);
}}}}
}}
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 10/19] rust: macros: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (8 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 09/19] rust: kunit: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 11/19] rust: miscdevice: " Tamir Duberstein
` (5 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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/macros/module.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust/macros/module.rs b/rust/macros/module.rs
index 5ee54a00c0b6..8cef6cc958b5 100644
--- a/rust/macros/module.rs
+++ b/rust/macros/module.rs
@@ -228,7 +228,7 @@ pub(crate) fn module(ts: TokenStream) -> TokenStream {
type LocalModule = {type_};
impl ::kernel::ModuleMetadata for {type_} {{
- const NAME: &'static ::kernel::str::CStr = ::kernel::c_str!(\"{name}\");
+ const NAME: &'static ::kernel::str::CStr = c\"{name}\";
}}
// Double nested modules, since then nobody can access the public items inside.
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 11/19] rust: miscdevice: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (9 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 10/19] rust: macros: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 12/19] rust: net: " Tamir Duberstein
` (4 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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>
---
samples/rust/rust_misc_device.rs | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/samples/rust/rust_misc_device.rs b/samples/rust/rust_misc_device.rs
index e7ab77448f75..60ab10b02574 100644
--- a/samples/rust/rust_misc_device.rs
+++ b/samples/rust/rust_misc_device.rs
@@ -98,7 +98,6 @@
use core::pin::Pin;
use kernel::{
- c_str,
device::Device,
fs::File,
ioctl::{_IO, _IOC_SIZE, _IOR, _IOW},
@@ -133,7 +132,7 @@ fn init(_module: &'static ThisModule) -> impl PinInit<Self, Error> {
pr_info!("Initialising Rust Misc Device Sample\n");
let options = MiscDeviceOptions {
- name: c_str!("rust-misc-device"),
+ name: c"rust-misc-device",
};
try_pin_init!(Self {
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 12/19] rust: net: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (10 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 11/19] rust: miscdevice: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 13/19] rust: pci: " Tamir Duberstein
` (3 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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 | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/rust/kernel/net/phy.rs b/rust/kernel/net/phy.rs
index be1027b7961b..9aeb2bd16b58 100644
--- a/rust/kernel/net/phy.rs
+++ b/rust/kernel/net/phy.rs
@@ -780,7 +780,6 @@ const fn as_int(&self) -> u32 {
///
/// ```
/// # mod module_phy_driver_sample {
-/// use kernel::c_str;
/// use kernel::net::phy::{self, DeviceId};
/// use kernel::prelude::*;
///
@@ -799,7 +798,7 @@ const fn as_int(&self) -> u32 {
///
/// #[vtable]
/// impl phy::Driver for PhySample {
-/// const NAME: &'static CStr = c_str!("PhySample");
+/// const NAME: &'static CStr = c"PhySample";
/// const PHY_DEVICE_ID: phy::DeviceId = phy::DeviceId::new_with_exact_mask(0x00000001);
/// }
/// # }
@@ -808,7 +807,6 @@ const fn as_int(&self) -> u32 {
/// This expands to the following code:
///
/// ```ignore
-/// use kernel::c_str;
/// use kernel::net::phy::{self, DeviceId};
/// use kernel::prelude::*;
///
@@ -828,7 +826,7 @@ const fn as_int(&self) -> u32 {
///
/// #[vtable]
/// impl phy::Driver for PhySample {
-/// const NAME: &'static CStr = c_str!("PhySample");
+/// const NAME: &'static CStr = c"PhySample";
/// const PHY_DEVICE_ID: phy::DeviceId = phy::DeviceId::new_with_exact_mask(0x00000001);
/// }
///
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 13/19] rust: pci: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (11 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 12/19] rust: net: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 14/19] rust: platform: " Tamir Duberstein
` (2 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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>
---
samples/rust/rust_driver_pci.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/samples/rust/rust_driver_pci.rs b/samples/rust/rust_driver_pci.rs
index 606946ff4d7f..e0e9d9fda484 100644
--- a/samples/rust/rust_driver_pci.rs
+++ b/samples/rust/rust_driver_pci.rs
@@ -4,7 +4,7 @@
//!
//! To make this driver probe, QEMU must be run with `-device pci-testdev`.
-use kernel::{bindings, c_str, device::Core, devres::Devres, pci, prelude::*, types::ARef};
+use kernel::{bindings, device::Core, devres::Devres, pci, prelude::*, types::ARef};
struct Regs;
@@ -79,7 +79,7 @@ fn probe(pdev: &pci::Device<Core>, info: &Self::IdInfo) -> Result<Pin<KBox<Self>
let drvdata = KBox::pin_init(
try_pin_init!(Self {
pdev: pdev.into(),
- bar <- pdev.iomap_region_sized::<{ Regs::END }>(0, c_str!("rust_driver_pci")),
+ bar <- pdev.iomap_region_sized::<{ Regs::END }>(0, c"rust_driver_pci"),
index: *info,
}),
GFP_KERNEL,
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 14/19] rust: platform: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (12 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 13/19] rust: pci: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 15:59 ` [PATCH v2 15/19] rust: seq_file: " Tamir Duberstein
2025-08-13 20:11 ` [PATCH v2 00/19] rust: " Mark Brown
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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/platform.rs | 6 +++---
samples/rust/rust_driver_faux.rs | 4 ++--
samples/rust/rust_driver_platform.rs | 30 ++++++++++++++----------------
3 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/rust/kernel/platform.rs b/rust/kernel/platform.rs
index 8f028c76f9fa..d1cc5cee1cf5 100644
--- a/rust/kernel/platform.rs
+++ b/rust/kernel/platform.rs
@@ -135,7 +135,7 @@ macro_rules! module_platform_driver {
/// # Examples
///
///```
-/// # use kernel::{acpi, bindings, c_str, device::Core, of, platform};
+/// # use kernel::{acpi, bindings, device::Core, of, platform};
///
/// struct MyDriver;
///
@@ -144,7 +144,7 @@ macro_rules! module_platform_driver {
/// MODULE_OF_TABLE,
/// <MyDriver as platform::Driver>::IdInfo,
/// [
-/// (of::DeviceId::new(c_str!("test,device")), ())
+/// (of::DeviceId::new(c"test,device"), ())
/// ]
/// );
///
@@ -153,7 +153,7 @@ macro_rules! module_platform_driver {
/// MODULE_ACPI_TABLE,
/// <MyDriver as platform::Driver>::IdInfo,
/// [
-/// (acpi::DeviceId::new(c_str!("LNUXBEEF")), ())
+/// (acpi::DeviceId::new(c"LNUXBEEF"), ())
/// ]
/// );
///
diff --git a/samples/rust/rust_driver_faux.rs b/samples/rust/rust_driver_faux.rs
index ecc9fd378cbd..23add3160693 100644
--- a/samples/rust/rust_driver_faux.rs
+++ b/samples/rust/rust_driver_faux.rs
@@ -2,7 +2,7 @@
//! Rust faux device sample.
-use kernel::{c_str, faux, prelude::*, Module};
+use kernel::{faux, prelude::*, Module};
module! {
type: SampleModule,
@@ -20,7 +20,7 @@ impl Module for SampleModule {
fn init(_module: &'static ThisModule) -> Result<Self> {
pr_info!("Initialising Rust Faux Device Sample\n");
- let reg = faux::Registration::new(c_str!("rust-faux-sample-device"), None)?;
+ let reg = faux::Registration::new(c"rust-faux-sample-device", None)?;
dev_info!(reg.as_ref(), "Hello from faux device!\n");
diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_driver_platform.rs
index ad08df0d73f0..b3fe45a43043 100644
--- a/samples/rust/rust_driver_platform.rs
+++ b/samples/rust/rust_driver_platform.rs
@@ -63,7 +63,7 @@
//!
use kernel::{
- acpi, c_str,
+ acpi,
device::{
self,
property::{FwNodeReferenceArgs, NArgs},
@@ -85,14 +85,14 @@ struct SampleDriver {
OF_TABLE,
MODULE_OF_TABLE,
<SampleDriver as platform::Driver>::IdInfo,
- [(of::DeviceId::new(c_str!("test,rust-device")), Info(42))]
+ [(of::DeviceId::new(c"test,rust-device"), Info(42))]
);
kernel::acpi_device_table!(
ACPI_TABLE,
MODULE_ACPI_TABLE,
<SampleDriver as platform::Driver>::IdInfo,
- [(acpi::DeviceId::new(c_str!("LNUXBEEF")), Info(0))]
+ [(acpi::DeviceId::new(c"LNUXBEEF"), Info(0))]
);
impl platform::Driver for SampleDriver {
@@ -126,49 +126,47 @@ impl SampleDriver {
fn properties_parse(dev: &device::Device) -> Result {
let fwnode = dev.fwnode().ok_or(ENOENT)?;
- if let Ok(idx) =
- fwnode.property_match_string(c_str!("compatible"), c_str!("test,rust-device"))
- {
+ if let Ok(idx) = fwnode.property_match_string(c"compatible", c"test,rust-device") {
dev_info!(dev, "matched compatible string idx = {}\n", idx);
}
- let name = c_str!("compatible");
+ let name = c"compatible";
let prop = fwnode.property_read::<CString>(name).required_by(dev)?;
dev_info!(dev, "'{name}'='{prop:?}'\n");
- let name = c_str!("test,bool-prop");
- let prop = fwnode.property_read_bool(c_str!("test,bool-prop"));
+ let name = c"test,bool-prop";
+ let prop = fwnode.property_read_bool(c"test,bool-prop");
dev_info!(dev, "'{name}'='{prop}'\n");
- if fwnode.property_present(c_str!("test,u32-prop")) {
+ if fwnode.property_present(c"test,u32-prop") {
dev_info!(dev, "'test,u32-prop' is present\n");
}
- let name = c_str!("test,u32-optional-prop");
+ let name = c"test,u32-optional-prop";
let prop = fwnode.property_read::<u32>(name).or(0x12);
dev_info!(dev, "'{name}'='{prop:#x}' (default = 0x12)\n");
// A missing required property will print an error. Discard the error to
// prevent properties_parse from failing in that case.
- let name = c_str!("test,u32-required-prop");
+ let name = c"test,u32-required-prop";
let _ = fwnode.property_read::<u32>(name).required_by(dev);
- let name = c_str!("test,u32-prop");
+ let name = c"test,u32-prop";
let prop: u32 = fwnode.property_read(name).required_by(dev)?;
dev_info!(dev, "'{name}'='{prop:#x}'\n");
- let name = c_str!("test,i16-array");
+ let name = c"test,i16-array";
let prop: [i16; 4] = fwnode.property_read(name).required_by(dev)?;
dev_info!(dev, "'{name}'='{prop:?}'\n");
let len = fwnode.property_count_elem::<u16>(name)?;
dev_info!(dev, "'{name}' length is {len}\n");
- let name = c_str!("test,i16-array");
+ let name = c"test,i16-array";
let prop: KVec<i16> = fwnode.property_read_array_vec(name, 4)?.required_by(dev)?;
dev_info!(dev, "'{name}'='{prop:?}' (KVec)\n");
for child in fwnode.children() {
- let name = c_str!("test,ref-arg");
+ let name = c"test,ref-arg";
let nargs = NArgs::N(2);
let prop: FwNodeReferenceArgs = child.property_get_reference_args(name, nargs, 0)?;
dev_info!(dev, "'{name}'='{prop:?}'\n");
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2 15/19] rust: seq_file: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (13 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 14/19] rust: platform: " Tamir Duberstein
@ 2025-08-13 15:59 ` Tamir Duberstein
2025-08-13 20:11 ` [PATCH v2 00/19] rust: " Mark Brown
15 siblings, 0 replies; 22+ messages in thread
From: Tamir Duberstein @ 2025-08-13 15:59 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
Mark Brown
Cc: linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel, Tamir Duberstein
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.
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/seq_file.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rust/kernel/seq_file.rs b/rust/kernel/seq_file.rs
index 855e533813a6..518265558d66 100644
--- a/rust/kernel/seq_file.rs
+++ b/rust/kernel/seq_file.rs
@@ -4,7 +4,7 @@
//!
//! C header: [`include/linux/seq_file.h`](srctree/include/linux/seq_file.h)
-use crate::{bindings, c_str, fmt, str::CStrExt as _, types::NotThreadSafe, types::Opaque};
+use crate::{bindings, fmt, str::CStrExt as _, types::NotThreadSafe, types::Opaque};
/// A utility for generating the contents of a seq file.
#[repr(transparent)]
@@ -36,7 +36,7 @@ pub fn call_printf(&self, args: fmt::Arguments<'_>) {
unsafe {
bindings::seq_printf(
self.inner.get(),
- c_str!("%pA").as_char_ptr(),
+ c"%pA".as_char_ptr(),
core::ptr::from_ref(&args).cast::<crate::ffi::c_void>(),
);
}
--
2.50.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings
2025-08-13 15:59 [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings Tamir Duberstein
` (14 preceding siblings ...)
2025-08-13 15:59 ` [PATCH v2 15/19] rust: seq_file: " Tamir Duberstein
@ 2025-08-13 20:11 ` Mark Brown
2025-08-14 8:24 ` Alice Ryhl
15 siblings, 1 reply; 22+ messages in thread
From: Mark Brown @ 2025-08-13 20:11 UTC (permalink / raw)
To: Tamir Duberstein
Cc: Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 801 bytes --]
On Wed, Aug 13, 2025 at 11:59:10AM -0400, Tamir Duberstein wrote:
> This series depends on step 3[0] which depends on steps 2a[1] and 2b[2]
> which both depend on step 1[3].
>
> This series also has a minor merge conflict with a small change[4] that
> was taken through driver-core-testing. This series is marked as
> depending on that change; as such it contains the post-conflict patch.
>
> Subsystem maintainers: I would appreciate your `Acked-by`s so that this
> can be taken through Miguel's tree (where the previous series must go).
Something seems to have gone wrong with your posting, both my mail
server and the mail archives stop at patch 15. If it were just rate
limiting or greylisting I'd have expected things to have sorted
themselves out by now for one or the other.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings
2025-08-13 20:11 ` [PATCH v2 00/19] rust: " Mark Brown
@ 2025-08-14 8:24 ` Alice Ryhl
2025-08-14 9:07 ` Miguel Ojeda
0 siblings, 1 reply; 22+ messages in thread
From: Alice Ryhl @ 2025-08-14 8:24 UTC (permalink / raw)
To: Mark Brown
Cc: Tamir Duberstein, Rafael J. Wysocki, Viresh Kumar, Miguel Ojeda,
Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, FUJITA Tomonori, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michael Turquette, Stephen Boyd, Breno Leitao,
Greg Kroah-Hartman, Luis Chamberlain, Russ Weight, Dave Ertman,
Ira Weiny, Leon Romanovsky, Bjorn Helgaas,
Krzysztof Wilczyński, Arnd Bergmann, Brendan Higgins,
David Gow, Rae Moar, Jens Axboe, Alexandre Courbot,
Alexander Viro, Christian Brauner, Jan Kara, Liam Girdwood,
linux-pm, linux-kernel, rust-for-linux, nouveau, dri-devel,
netdev, linux-clk, linux-pci, linux-kselftest, kunit-dev,
linux-block, linux-fsdevel
On Wed, Aug 13, 2025 at 09:11:51PM +0100, Mark Brown wrote:
> On Wed, Aug 13, 2025 at 11:59:10AM -0400, Tamir Duberstein wrote:
> > This series depends on step 3[0] which depends on steps 2a[1] and 2b[2]
> > which both depend on step 1[3].
> >
> > This series also has a minor merge conflict with a small change[4] that
> > was taken through driver-core-testing. This series is marked as
> > depending on that change; as such it contains the post-conflict patch.
> >
> > Subsystem maintainers: I would appreciate your `Acked-by`s so that this
> > can be taken through Miguel's tree (where the previous series must go).
>
> Something seems to have gone wrong with your posting, both my mail
> server and the mail archives stop at patch 15. If it were just rate
> limiting or greylisting I'd have expected things to have sorted
> themselves out by now for one or the other.
Tamir mentioned to me that he ran into a daily limit on the number of
emails he could send.
Alice
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 00/19] rust: replace `kernel::c_str!` with C-Strings
2025-08-14 8:24 ` Alice Ryhl
@ 2025-08-14 9:07 ` Miguel Ojeda
0 siblings, 0 replies; 22+ messages in thread
From: Miguel Ojeda @ 2025-08-14 9:07 UTC (permalink / raw)
To: Alice Ryhl
Cc: Mark Brown, Tamir Duberstein, Rafael J. Wysocki, Viresh Kumar,
Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, Danilo Krummrich, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, FUJITA Tomonori,
Andrew Lunn, Heiner Kallweit, Russell King, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Michael Turquette,
Stephen Boyd, Breno Leitao, Greg Kroah-Hartman, Luis Chamberlain,
Russ Weight, Dave Ertman, Ira Weiny, Leon Romanovsky,
Bjorn Helgaas, Krzysztof Wilczyński, Arnd Bergmann,
Brendan Higgins, David Gow, Rae Moar, Jens Axboe,
Alexandre Courbot, Alexander Viro, Christian Brauner, Jan Kara,
Liam Girdwood, linux-pm, linux-kernel, rust-for-linux, nouveau,
dri-devel, netdev, linux-clk, linux-pci, linux-kselftest,
kunit-dev, linux-block, linux-fsdevel
On Thu, Aug 14, 2025 at 10:24 AM Alice Ryhl <aliceryhl@google.com> wrote:
>
> Tamir mentioned to me that he ran into a daily limit on the number of
> emails he could send.
He is posting the updates around the migration in Zulip:
https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/topic/CStr.20migration/near/527957336
Cheers,
Miguel
^ permalink raw reply [flat|nested] 22+ messages in thread