Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

rust: platform: replace `kernel::c_str!` with C-Strings

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>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Link: https://patch.msgid.link/20251222-cstr-driver-core-v1-3-1142a177d0fd@gmail.com
[ Use kernel vertical import style; discard unrelated faux changes.
- Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>

authored by

Tamir Duberstein and committed by
Danilo Krummrich
1114c87e f0c6ea85

+23 -20
+9 -4
rust/kernel/platform.rs
··· 137 137 /// # Examples 138 138 /// 139 139 ///``` 140 - /// # use kernel::{acpi, bindings, c_str, device::Core, of, platform}; 141 - /// 140 + /// # use kernel::{ 141 + /// # acpi, 142 + /// # bindings, 143 + /// # device::Core, 144 + /// # of, 145 + /// # platform, 146 + /// # }; 142 147 /// struct MyDriver; 143 148 /// 144 149 /// kernel::of_device_table!( ··· 151 146 /// MODULE_OF_TABLE, 152 147 /// <MyDriver as platform::Driver>::IdInfo, 153 148 /// [ 154 - /// (of::DeviceId::new(c_str!("test,device")), ()) 149 + /// (of::DeviceId::new(c"test,device"), ()) 155 150 /// ] 156 151 /// ); 157 152 /// ··· 160 155 /// MODULE_ACPI_TABLE, 161 156 /// <MyDriver as platform::Driver>::IdInfo, 162 157 /// [ 163 - /// (acpi::DeviceId::new(c_str!("LNUXBEEF")), ()) 158 + /// (acpi::DeviceId::new(c"LNUXBEEF"), ()) 164 159 /// ] 165 160 /// ); 166 161 ///
+14 -16
samples/rust/rust_driver_platform.rs
··· 63 63 //! 64 64 65 65 use kernel::{ 66 - acpi, c_str, 66 + acpi, 67 67 device::{ 68 68 self, 69 69 property::{FwNodeReferenceArgs, NArgs}, ··· 85 85 OF_TABLE, 86 86 MODULE_OF_TABLE, 87 87 <SampleDriver as platform::Driver>::IdInfo, 88 - [(of::DeviceId::new(c_str!("test,rust-device")), Info(42))] 88 + [(of::DeviceId::new(c"test,rust-device"), Info(42))] 89 89 ); 90 90 91 91 kernel::acpi_device_table!( 92 92 ACPI_TABLE, 93 93 MODULE_ACPI_TABLE, 94 94 <SampleDriver as platform::Driver>::IdInfo, 95 - [(acpi::DeviceId::new(c_str!("LNUXBEEF")), Info(0))] 95 + [(acpi::DeviceId::new(c"LNUXBEEF"), Info(0))] 96 96 ); 97 97 98 98 impl platform::Driver for SampleDriver { ··· 124 124 fn properties_parse(dev: &device::Device) -> Result { 125 125 let fwnode = dev.fwnode().ok_or(ENOENT)?; 126 126 127 - if let Ok(idx) = 128 - fwnode.property_match_string(c_str!("compatible"), c_str!("test,rust-device")) 129 - { 127 + if let Ok(idx) = fwnode.property_match_string(c"compatible", c"test,rust-device") { 130 128 dev_info!(dev, "matched compatible string idx = {}\n", idx); 131 129 } 132 130 133 - let name = c_str!("compatible"); 131 + let name = c"compatible"; 134 132 let prop = fwnode.property_read::<CString>(name).required_by(dev)?; 135 133 dev_info!(dev, "'{name}'='{prop:?}'\n"); 136 134 137 - let name = c_str!("test,bool-prop"); 138 - let prop = fwnode.property_read_bool(c_str!("test,bool-prop")); 135 + let name = c"test,bool-prop"; 136 + let prop = fwnode.property_read_bool(c"test,bool-prop"); 139 137 dev_info!(dev, "'{name}'='{prop}'\n"); 140 138 141 - if fwnode.property_present(c_str!("test,u32-prop")) { 139 + if fwnode.property_present(c"test,u32-prop") { 142 140 dev_info!(dev, "'test,u32-prop' is present\n"); 143 141 } 144 142 145 - let name = c_str!("test,u32-optional-prop"); 143 + let name = c"test,u32-optional-prop"; 146 144 let prop = fwnode.property_read::<u32>(name).or(0x12); 147 145 dev_info!(dev, "'{name}'='{prop:#x}' (default = 0x12)\n"); 148 146 149 147 // A missing required property will print an error. Discard the error to 150 148 // prevent properties_parse from failing in that case. 151 - let name = c_str!("test,u32-required-prop"); 149 + let name = c"test,u32-required-prop"; 152 150 let _ = fwnode.property_read::<u32>(name).required_by(dev); 153 151 154 - let name = c_str!("test,u32-prop"); 152 + let name = c"test,u32-prop"; 155 153 let prop: u32 = fwnode.property_read(name).required_by(dev)?; 156 154 dev_info!(dev, "'{name}'='{prop:#x}'\n"); 157 155 158 - let name = c_str!("test,i16-array"); 156 + let name = c"test,i16-array"; 159 157 let prop: [i16; 4] = fwnode.property_read(name).required_by(dev)?; 160 158 dev_info!(dev, "'{name}'='{prop:?}'\n"); 161 159 let len = fwnode.property_count_elem::<u16>(name)?; 162 160 dev_info!(dev, "'{name}' length is {len}\n"); 163 161 164 - let name = c_str!("test,i16-array"); 162 + let name = c"test,i16-array"; 165 163 let prop: KVec<i16> = fwnode.property_read_array_vec(name, 4)?.required_by(dev)?; 166 164 dev_info!(dev, "'{name}'='{prop:?}' (KVec)\n"); 167 165 168 166 for child in fwnode.children() { 169 - let name = c_str!("test,ref-arg"); 167 + let name = c"test,ref-arg"; 170 168 let nargs = NArgs::N(2); 171 169 let prop: FwNodeReferenceArgs = child.property_get_reference_args(name, nargs, 0)?; 172 170 dev_info!(dev, "'{name}'='{prop:?}'\n");