From nobody Thu Oct 2 02:05:51 2025 Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C98662DA767 for ; Thu, 25 Sep 2025 13:55:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758808546; cv=none; b=mAMlXVa0AvRdwERtCaZJjjlUw/72nxapygToDC5bwFQnWPc0AINoh1oQX1k42lwVGEEb5r+3YT756+SOVt0X25XdJ1SELNjOWkpx4qxrJ/yVW/glvNkHHtaBQuq4WXC9lFjt0JB60Fqrq311/zg4LBFpMwrVBoDqko1MY5bF89Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758808546; c=relaxed/simple; bh=cGT2p8vWeMd9yhCscAqtKB14P0MqjieptZpD6VjuDnQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ppr+JIiDycu8ohwxTfbl3kuwG0sEWV2U8iz/TCVY5OnyPfqkmtuM0ELiMHK5W8HsGsyjYzFKVLKPMIZNyWQuAy2CsPB1rqPnujCeBiv7iz0pUQD6+9XWqicl7r295Lbb8WjezkP7sxQiV+XB+7x9iSrv+HDUyAu8GOGYPXHF2go= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QNKnXwyx; arc=none smtp.client-ip=209.85.219.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QNKnXwyx" Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-792f273fbe4so4557366d6.3 for ; Thu, 25 Sep 2025 06:55:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758808544; x=1759413344; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WAkOv1RieyKvIfCAhJItgJq0V7Rg1TFOU5lVc6t6PUg=; b=QNKnXwyxRNLHaB0G90cg4piqi+WLlffVo8gyhXvBR0dxXTRIJyhZ47K7ozqeszP2Gc 6iZ5dHqRU53CX5dwNOX98mUQb78HSBEC9cBUAYmlWHLDvE+/qIyBiGJjgFEAJ/PSVWIz 2dBfhUIFx9pZ4xMclW7yje4dGxt8pV/gXxZL7ynDXmarqR/OGueIIQEppDyAPqst+SKK ckWkTydWSBFrZ6GltJedHN4ms/EuId+U1MlEBk2y3IK2eSDLIAh33O48BxxUK/4ZPega i4v1X2yk5FylPajjOZO9eEpBfzWQEu5pKQqk9S5rbXvyW3hi1FQRg2gK2wwsX3GzXMRG 7x/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758808544; x=1759413344; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WAkOv1RieyKvIfCAhJItgJq0V7Rg1TFOU5lVc6t6PUg=; b=wxIYxhyNh47EthR5bwCrFhmOdFYuEpyS7xFxUxAHXssaLn0XRAJl0Wo4qySnC0wSCK SuW0ftxMp0mxpm2b59XSsqqS2476SV16iqFtzrL+K3bkbb8MBNOunfSL+K1qyFerVkNk boNKm+rSmcflC5Jt8zrHEJcddhXVxfToewTfoxHLslRXfK5dSNFLvywEKWAU3kwCSmel 2LJi1FC8a2YfhtjPZ63UwroX6a4DnQ8caXS8BvPsJOsd+DpN6Iw1twzNmN7GGYPANmlh UJuqCqDPJloJL5gI7CfnBBl1xEK3jh8c47XPjSoXOPz+/JV2QdOM0B0oXadRC7WKcqcq tJPg== X-Forwarded-Encrypted: i=1; AJvYcCVGhplmgh1R0FAH8/ejqeN9s9aNLsFIbdC86MJUT8THnVZH6nhl6He3ptY11UIl1FO5iJP/SvBNgz/hTeU=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5ioIc1/+76QlvjuESCWBDOLd1BlyrYKGrU5IMYcnQnjnP5/iQ QP1TdF4ZVPu+N/xKKp0QaCkOqJA9n78ibsp/Ph/72+bUBXXupuiaIgQy X-Gm-Gg: ASbGncvr8+GeRd4jrBDgQKpMD+uqQ2BoJCXxWwlzGgKSq5n31FdTYHy16S/C/aPUl18 dbs5ROxskHMBiIXvakem3XhXV04fVI8UUNNbIK9Dhbi2e1lH+IekC0DU2Qx3J8kc/yfDGFyyrVd iIyNaO4MhpUCccAbEpeVzyu/TdNKlXnLbGibJktGkQPhwqqcd8WsWWJTEMv11NHTEkKAHAjR8Li BqLMa77cfuDIPHPoEYVP08yc+8tNu9jpsL01e1/XgtnRS+kH3mXR6Tjimi5LSruuOYK+cqTfmZ5 LBZ/c4UbkC/8cvSws98k9ADVNVE5y4Q8gvBRKi3kkQwNkwPEFbZaQO08iPR4rFd9enRCXh3SjtU SC4oKkkfescyAQAqGqYrsH33hyIfobjpqvY5NSo9i8by+KWvq+muFLW86Xjxpd0dl64rXdzBC6y DbZbsht3r9qBI4y+hnJscfmWLcOovJpOmc8I7d5VHBJtlDmE0c3pUs9ps4bww15+VE8awi X-Google-Smtp-Source: AGHT+IHF9UuB9For1/7YW0Qxf6nPTFMieeyDSqN58eT9nYnL6TeBAODoPScd1hJnleJiIi565hDfTQ== X-Received: by 2002:ad4:5bc9:0:b0:76a:fcee:97aa with SMTP id 6a1803df08f44-7fc309ec826mr47856686d6.29.1758808543310; Thu, 25 Sep 2025 06:55:43 -0700 (PDT) Received: from 137.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:7c:b286:dba3:5ba8]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-80135968d5esm11536916d6.12.2025.09.25.06.55.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Sep 2025 06:55:42 -0700 (PDT) From: Tamir Duberstein Date: Thu, 25 Sep 2025 09:54:02 -0400 Subject: [PATCH v2 14/19] rust: platform: replace `kernel::c_str!` with C-Strings Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250925-core-cstr-cstrings-v2-14-78e0aaace1cd@gmail.com> References: <20250925-core-cstr-cstrings-v2-0-78e0aaace1cd@gmail.com> In-Reply-To: <20250925-core-cstr-cstrings-v2-0-78e0aaace1cd@gmail.com> To: "Rafael J. Wysocki" , Viresh Kumar , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_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 , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , 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@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, linux-clk@vger.kernel.org, linux-pci@vger.kernel.org, linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1758808438; l=6208; i=tamird@gmail.com; h=from:subject:message-id; bh=cGT2p8vWeMd9yhCscAqtKB14P0MqjieptZpD6VjuDnQ=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QAqXnSTSLC5DSGmrQ0rUUvFP5bu0JMFwcjJ+FLO2nGEH20VIfZHuQ47CF/8jOiBsSKPADtt8TtP 7X9bJlhhLGw8= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc 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 Reviewed-by: Alice Ryhl Reviewed-by: Benno Lossin Acked-by: Danilo Krummrich Signed-off-by: Tamir Duberstein --- 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, /// ::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, /// ::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_fa= ux.rs index ecc9fd378cbd..23add3160693 100644 --- a/samples/rust/rust_driver_faux.rs +++ b/samples/rust/rust_driver_faux.rs @@ -2,7 +2,7 @@ =20 //! Rust faux device sample. =20 -use kernel::{c_str, faux, prelude::*, Module}; +use kernel::{faux, prelude::*, Module}; =20 module! { type: SampleModule, @@ -20,7 +20,7 @@ impl Module for SampleModule { fn init(_module: &'static ThisModule) -> Result { pr_info!("Initialising Rust Faux Device Sample\n"); =20 - let reg =3D faux::Registration::new(c_str!("rust-faux-sample-devic= e"), None)?; + let reg =3D faux::Registration::new(c"rust-faux-sample-device", No= ne)?; =20 dev_info!(reg.as_ref(), "Hello from faux device!\n"); =20 diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_drive= r_platform.rs index ad08df0d73f0..b3fe45a43043 100644 --- a/samples/rust/rust_driver_platform.rs +++ b/samples/rust/rust_driver_platform.rs @@ -63,7 +63,7 @@ //! =20 use kernel::{ - acpi, c_str, + acpi, device::{ self, property::{FwNodeReferenceArgs, NArgs}, @@ -85,14 +85,14 @@ struct SampleDriver { OF_TABLE, MODULE_OF_TABLE, ::IdInfo, - [(of::DeviceId::new(c_str!("test,rust-device")), Info(42))] + [(of::DeviceId::new(c"test,rust-device"), Info(42))] ); =20 kernel::acpi_device_table!( ACPI_TABLE, MODULE_ACPI_TABLE, ::IdInfo, - [(acpi::DeviceId::new(c_str!("LNUXBEEF")), Info(0))] + [(acpi::DeviceId::new(c"LNUXBEEF"), Info(0))] ); =20 impl platform::Driver for SampleDriver { @@ -126,49 +126,47 @@ impl SampleDriver { fn properties_parse(dev: &device::Device) -> Result { let fwnode =3D dev.fwnode().ok_or(ENOENT)?; =20 - if let Ok(idx) =3D - fwnode.property_match_string(c_str!("compatible"), c_str!("tes= t,rust-device")) - { + if let Ok(idx) =3D fwnode.property_match_string(c"compatible", c"t= est,rust-device") { dev_info!(dev, "matched compatible string idx =3D {}\n", idx); } =20 - let name =3D c_str!("compatible"); + let name =3D c"compatible"; let prop =3D fwnode.property_read::(name).required_by(dev= )?; dev_info!(dev, "'{name}'=3D'{prop:?}'\n"); =20 - let name =3D c_str!("test,bool-prop"); - let prop =3D fwnode.property_read_bool(c_str!("test,bool-prop")); + let name =3D c"test,bool-prop"; + let prop =3D fwnode.property_read_bool(c"test,bool-prop"); dev_info!(dev, "'{name}'=3D'{prop}'\n"); =20 - 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"); } =20 - let name =3D c_str!("test,u32-optional-prop"); + let name =3D c"test,u32-optional-prop"; let prop =3D fwnode.property_read::(name).or(0x12); dev_info!(dev, "'{name}'=3D'{prop:#x}' (default =3D 0x12)\n"); =20 // A missing required property will print an error. Discard the er= ror to // prevent properties_parse from failing in that case. - let name =3D c_str!("test,u32-required-prop"); + let name =3D c"test,u32-required-prop"; let _ =3D fwnode.property_read::(name).required_by(dev); =20 - let name =3D c_str!("test,u32-prop"); + let name =3D c"test,u32-prop"; let prop: u32 =3D fwnode.property_read(name).required_by(dev)?; dev_info!(dev, "'{name}'=3D'{prop:#x}'\n"); =20 - let name =3D c_str!("test,i16-array"); + let name =3D c"test,i16-array"; let prop: [i16; 4] =3D fwnode.property_read(name).required_by(dev)= ?; dev_info!(dev, "'{name}'=3D'{prop:?}'\n"); let len =3D fwnode.property_count_elem::(name)?; dev_info!(dev, "'{name}' length is {len}\n"); =20 - let name =3D c_str!("test,i16-array"); + let name =3D c"test,i16-array"; let prop: KVec =3D fwnode.property_read_array_vec(name, 4)?.r= equired_by(dev)?; dev_info!(dev, "'{name}'=3D'{prop:?}' (KVec)\n"); =20 for child in fwnode.children() { - let name =3D c_str!("test,ref-arg"); + let name =3D c"test,ref-arg"; let nargs =3D NArgs::N(2); let prop: FwNodeReferenceArgs =3D child.property_get_reference= _args(name, nargs, 0)?; dev_info!(dev, "'{name}'=3D'{prop:?}'\n"); --=20 2.51.0