From nobody Sat Feb 7 22:21:09 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (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 80305439005 for ; Tue, 20 Jan 2026 14:59:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768921158; cv=none; b=FG3hWXd3r/AWQq2BUDlUeaoM32tI8gNKYiMa0lMB4DcEvf7egDKMyV0P7LOJq/G1lm3TLS/WTOo+YTC6Qv2qb/kEFRU78RjUETEf7weuyjpxUVZ1dpbR70u8LytkLm4Y0is7dD/BPNTAudZzziMAtVqO71HzU6E+o+MY6U1ir8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768921158; c=relaxed/simple; bh=iolTe2Nv6CXObYVORHv7J+SxOaQNUXJvbYUG0yhxQwo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ji5N3cxQSnpxTwc3b2JalQzFpJPWn8aReENOyegQanhB+4qBTtw5bW5jaJg92kLALa5r20pRfOuLQhJ1Beyqk1TXpgKlieqcU+sxzwqdyqemDnl+UxyB/IWKls17C+1nNPoJDOeMWD5ESd0YJ0wBZQss7h5sN/Y64Nzq/sUYe2k= 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=f+XqgduK; arc=none smtp.client-ip=209.85.210.176 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="f+XqgduK" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-81f478e5283so4803818b3a.2 for ; Tue, 20 Jan 2026 06:59:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768921155; x=1769525955; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eSjlYt7iWy0dHDjMoGOdBEcpp+zSyHhPWpL6L/bevUw=; b=f+XqgduKHxlnwiDk+dX72xMItu+7DmPTjYlluGUWCvvYVOar24hE9536pRxkPGjD94 K3Jh1P91PFKxAqAbgDzjSCmO3Raxi7Q0pjle/B5LO0Q/oS3Bc5MFpO+xA7SpBGHS2tGN uU3LDYvPXdsBU5+8dI1BSNnW9jbNEbK56WC1o/RHfOWd6ieaTjAQffKzGb7+nlt4Yc+Z E29YF8mCcArvWQDMqvUri7fFKXd2ffhsP6w0qbycosnM75bj7aS295Xz+h18C0EOk49n jVmUe/00wYdKLaPQbxtMkuSBePXNMODbOGO/rAfIVIDcmZlkBQH5D0gd+4nkZ5mUsJdY ZLTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768921155; x=1769525955; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eSjlYt7iWy0dHDjMoGOdBEcpp+zSyHhPWpL6L/bevUw=; b=p7Z5J4dhk+7X7AeJrCvyj83FLfqfD4EaWdKfUHdIgaDmNLV+V+kaq/P3pj9KKyCs9Q sDk9VhmjaLh8foPHWItHgrFOlkD37w2/qYxeirLWeq7e+kKciU4LqexLvk6ubiExUxTn tagpV60Y2x0sK+vdZjWtiq0vuySzCw79oBiDnjv9DxoaJTc/MEZkJahsIwttQjpbRZNR 3zjaPsxX4RADnqVPlj1R38vzy2a3qTN6cfBAsJIomYKeU7KnjyhyFOGn5zsoS8GczAEi TjA1VbNsAoVgN8qbT1lXsEYVbIGV5/EAx6a/U2Ez/HANs5bbaGHHuHrDj6yIu/6WJoDG pGWg== X-Forwarded-Encrypted: i=1; AJvYcCU/bFPzL3IrSz9O0M+BuzXjNcpuiCLPNpUsdsJEO0Y4G0tljmbRk3PGniX4gw/80ZVl3nJUgF0UCtoZC7g=@vger.kernel.org X-Gm-Message-State: AOJu0Yxw+cwSGNm7sXnknwawYp34G9nSQI3KR50JUxn42+GpK5C74Qn/ /xxA5ILtvL+x6Ch7hvlitLfo4qdUsT+ju95MGF54/pZi2SJtgnvdRpXS X-Gm-Gg: AY/fxX7Ab5wMjwH66imwvemqb/eFFxH4J54akE7dyPw57dBsM1GRHPPhGNG1tq00xJL XzgyJKUaeulTJN9XnKx3Tffu5kvt1Jkf5LRcCyM4fjB+DPu5ySJCPJlAS725ZRqIh2bX5sQuudq YX04BF1vcmpIbfY6gm4BTxkTlzcAttDgc2aau+KItm4FC/4HtfzAFzJXTYjbyAVzDsTAqBSMANG 98kNGE1k1VTiwtYZYwzHYYYBFMtz8ZnuqhTiVhN+Q58eK8UB3VJ41lyEYw0uLTZzRXK98nyZ4NZ Ey3xdn8p57FMaBXbo/fshe9zgjJIycj/hIchVHCVdLRNi+91P1h2PNZUh1z2gqZZ0t1Ie7FiHgg OUTlmZ4Az4VFXy3TfS4vKJsPemQ8CuPqkMmfSUY6F6RAYaSBH1S38zisiIcmVoLsoAByj4aazoe yrTbe7ZGVOB3g4R/W71ZSFEjj/E47ac+At1k9XA7Jd1k+txR4LAR6i X-Received: by 2002:a05:6a20:918d:b0:38d:eeff:7b1e with SMTP id adf61e73a8af0-38dfe6c1947mr12933114637.34.1768921155419; Tue, 20 Jan 2026 06:59:15 -0800 (PST) Received: from kailas.hsd1.or.comcast.net ([2601:1c2:1803:3ab0::2e2b]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c5edf354b3bsm5478104a12.24.2026.01.20.06.59.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Jan 2026 06:59:14 -0800 (PST) From: Ryan Foster To: gary@garyguo.net Cc: a.hindborg@kernel.org, aliceryhl@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, dakr@kernel.org, gregkh@linuxfoundation.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, lossin@kernel.org, ojeda@kernel.org, rafael@kernel.org, rust-for-linux@vger.kernel.org, tmgross@umich.edu, Ryan Foster Subject: [PATCH] rust: replace `kernel::c_str!` with C-Strings in seq_file and device Date: Tue, 20 Jan 2026 06:59:12 -0800 Message-ID: <20260120145912.281977-1-foster.ryan.r@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" C-String literals were added in Rust 1.77. Replace instances of `kernel::c_str!` with C-String literals where possible. This patch updates seq_file and device modules to use the native C-string literal syntax (c"...") instead of the kernel::c_str! macro. While at it, convert imports to the kernel vertical import style. Signed-off-by: Ryan Foster Reviewed-by: Gary Guo --- rust/kernel/device.rs | 19 ++++++++++++------- rust/kernel/seq_file.rs | 12 ++++++++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs index 71b200df0f40..a87350c1a67d 100644 --- a/rust/kernel/device.rs +++ b/rust/kernel/device.rs @@ -5,15 +5,20 @@ //! C header: [`include/linux/device.h`](srctree/include/linux/device.h) =20 use crate::{ - bindings, fmt, + bindings, + fmt, prelude::*, sync::aref::ARef, - types::{ForeignOwnable, Opaque}, + types::{ + ForeignOwnable, + Opaque, // + }, // +}; +use core::{ + any::TypeId, + marker::PhantomData, + ptr, // }; -use core::{any::TypeId, marker::PhantomData, ptr}; - -#[cfg(CONFIG_PRINTK)] -use crate::c_str; =20 pub mod property; =20 @@ -462,7 +467,7 @@ unsafe fn printk(&self, klevel: &[u8], msg: fmt::Argume= nts<'_>) { bindings::_dev_printk( klevel.as_ptr().cast::(), self.as_raw(), - c_str!("%pA").as_char_ptr(), + c"%pA".as_char_ptr(), core::ptr::from_ref(&msg).cast::(), ) }; diff --git a/rust/kernel/seq_file.rs b/rust/kernel/seq_file.rs index 855e533813a6..109ad6670907 100644 --- a/rust/kernel/seq_file.rs +++ b/rust/kernel/seq_file.rs @@ -4,7 +4,15 @@ //! //! C header: [`include/linux/seq_file.h`](srctree/include/linux/seq_file.= h) =20 -use crate::{bindings, c_str, fmt, str::CStrExt as _, types::NotThreadSafe,= types::Opaque}; +use crate::{ + bindings, + fmt, + str::CStrExt as _, + types::{ + NotThreadSafe, + Opaque, // + }, // +}; =20 /// A utility for generating the contents of a seq file. #[repr(transparent)] @@ -36,7 +44,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::(), ); } --=20 2.52.0