From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 9D15A242D9B for ; Sat, 18 Oct 2025 17:45:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809540; cv=none; b=t2t1yUmlZzFN7j/z8qOFC47hC6WL4fzhvyuK/BksOZJaxHiUNTS9JpdOvtgdlLDzKE8J9x1o+h1yY94hjDEm0Ev2b6UA8DJfkFTMYHalW02hJijcISrEfOp2VkcCTcmw1FYxJl81I+g5yC4q5egSyoeW5zyAGw73hxQj8YfgMv0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809540; c=relaxed/simple; bh=5IzviSKzcg5QXxBA9uZe2s664KTsV8Tne2rtRwo/bww=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lc3OOrbMOi0mjR0ZgEIg36crwpvzMdWaprjBTxkRiFrCNc1lTsqxEkP8bhkQuGQHNDYYqpF3vbngO/q+hB7yb+1WoG/riyrmvSaKiTRp9md55sVgwGOvQuESNYMrUDnqKvNfphblJkRqhokpIFFlkcAqvdp/q2T+QyCqWIPoxFM= 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=Q27Nv88l; arc=none smtp.client-ip=209.85.219.42 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="Q27Nv88l" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-87c167c0389so46792056d6.3 for ; Sat, 18 Oct 2025 10:45:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809536; x=1761414336; 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=fmofoJkHkMxsaLhdlprPrmfRRb4k8Y1fAGmfllLm4kw=; b=Q27Nv88lwG8WtOScTJF+LqJvOyeRmP4ZDqM5t9H1xBqWmyaNT4kgG010V7qDD0BJe+ lE7JSXpZCE68Lg5S+jYdIOOHuGUA9ed/NgdLWQ/K5T02Cy6CBqVKyR63a9E8+meG4g45 POXmwzvXEoppx/+rp62KceldkqkrRkdGlCiEltex5huljAkLFiHsJw4zBpdUV1Yievo9 iEJFa6qTyfMlFkerGMUrn3eKhBLdJnB5WbBM7Z39jMVfYrjSAARmFbiuZUpBc62pDorR NU3VlntTD64673vpMRmsCnyoDtl6i1xhqAJqCuk7RDNnnYwHRSiPLVpneL5MnAgadS5q 8qZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809536; x=1761414336; 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=fmofoJkHkMxsaLhdlprPrmfRRb4k8Y1fAGmfllLm4kw=; b=HVL4y9BzwXYkmQPLFdNhSUHPkwfnbt2DKDk3jVaPp9ObPuTrtHLjN+Ud8cYlBqsZDV +7LX5MDDy5TR932xKpbRicXFAxXgUOZn9GWlD1EvzkJ5AWhJhcOlagALdHYZ6oBLAEB8 OPUN0vOSHosLQehXEqneKOvZfhV6cB6O5D0WHLLPxICE0fOAtu2+9uX7u7343jS72UAv LLqAGKLVRE/CPYPXLuoN7RPG74OTqx6pg1ADBGW/AaQeXyigTn1186aiteuZwZ40IARd QEaAQJx2k7d7SPcvr4oewAL5UY0YePavxatFvOPZ+qZyrBVGYvZcAyorUkNeIwS0TBoz BXog== X-Forwarded-Encrypted: i=1; AJvYcCUrJy+u5BqShRJ2EWICnUaU8YrpyFBlj8KeYFXx5abG69oecQxYSVItsq/Akg1AKh+a5bviGs4OkF89oXs=@vger.kernel.org X-Gm-Message-State: AOJu0YzqkzmsT2vvmVuzGTlQEoB2zsQjhzfCzVtgh8FTKsNS63jUlu0m MOwbbStiSctj+O5/K8W4WKAelo9PztfkafjQgRfvOLhh2lnpJnuEak9L X-Gm-Gg: ASbGnctzmv00fYXSTIfCj+1KmH3E9g18D4rYwZRngh2db8Vb8n0oC6vHRTZS4Ge+X4J mHnh0q51KXiT7gdpdDhFn66ggpGoj/M3ImOVGeLJD2I3VVnSNSk/R0rCs5blD4dflJasit/OKdB cZ+pS1kjM90NNbXXL1qZwBLZCg5ephcF6JjAuTggoCsF8LBjgPvqZjecIvFQiT15C/jWczFs1aq h2Jwh6PzvENfgc8JVUTNwy/nIueER7kmJIVrRpraWQcdajf2DyXxrrQItKAt1Lv/sr7iMREZDxi 4zNvHib+IUk/tx1T+QzQjEUddT6WAGgNvYdk0uM9RA9qCD1UT/X08twyooE2+Pp6HKnHF4RuC6E iAVKEPXFmdCHNHem6zF/uifjJAjeRX5C+3GfmpYSBT0fNwu/Ba+U2jnEL0vzfW1p1SlBfYeb0gB y5uTB0RZ8UsAd1kpEaqmrCIMh7NC7n0L1Axpv5aGG1YPntM36ChSuTZox6owD1LZCK4M/XK2/rh VlIjSmCRSXnQoAgHYhSj3g7bzt3EOytDmPus3TXCKQ0WeTZnvtU X-Google-Smtp-Source: AGHT+IHGPyNylAC+NcjKR3LVCwruQ+XagK91t9ZK/AgOi9yexcJC3Bdqjt9T2UkkZHJl14b1ky8RWg== X-Received: by 2002:a05:622a:10:b0:4e8:a664:2cfa with SMTP id d75a77b69052e-4e8a66467efmr59406621cf.34.1760809535454; Sat, 18 Oct 2025 10:45:35 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:34 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:12 -0400 Subject: [PATCH v18 01/16] samples: rust: platform: remove trailing commas 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: <20251018-cstr-core-v18-1-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809526; l=1642; i=tamird@gmail.com; h=from:subject:message-id; bh=5IzviSKzcg5QXxBA9uZe2s664KTsV8Tne2rtRwo/bww=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QDwRhntvVCGUiRlEkiv1zZeGhdA6rD6SNhGZH3QI1C43PlBagNvzfDvivxfFTU380ObMT25PMu4 pe9SrdQ8j/g4= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc This prepares for a later commit in which we introduce a custom formatting macro; that macro doesn't handle trailing commas so just remove them. Acked-by: Danilo Krummrich Reviewed-by: Benno Lossin Signed-off-by: Tamir Duberstein --- samples/rust/rust_driver_platform.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_drive= r_platform.rs index 6473baf4f120..8a82e251820f 100644 --- a/samples/rust/rust_driver_platform.rs +++ b/samples/rust/rust_driver_platform.rs @@ -146,7 +146,7 @@ fn properties_parse(dev: &device::Device) -> Result { =20 let name =3D c_str!("test,u32-optional-prop"); let prop =3D fwnode.property_read::(name).or(0x12); - dev_info!(dev, "'{name}'=3D'{prop:#x}' (default =3D 0x12)\n",); + 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. @@ -161,7 +161,7 @@ fn properties_parse(dev: &device::Device) -> Result { 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",); + dev_info!(dev, "'{name}' length is {len}\n"); =20 let name =3D c_str!("test,i16-array"); let prop: KVec =3D fwnode.property_read_array_vec(name, 4)?.r= equired_by(dev)?; --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.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 448F826D4C0 for ; Sat, 18 Oct 2025 17:45:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809543; cv=none; b=icyFbuz27Y9/gXCbKqPcEKMXkK6TOCLyy+Rnbz1NzmaCA8aVfXKXlPreKaaz3S9osTpOg7GbKPepxiiWt/RWSnLzJ9ldMfe7LgdwFrKfxWOTwiBraWKNR9FteYRZINcd3i/wLxOU4W1Ubn7FepGA5pc64QQgiv2O7avE2gljMNU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809543; c=relaxed/simple; bh=6FtTg88GY2fWPari0/xVYIFZl0LtyM/QigeE2PMN1js=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EgEFCx6e6WYqaFFzJLnJrSte8GWJBv61yOE5qd9Ylv2QEpq1GC2PoSrf3ob5E1AvGNwPQUvm0tdnZ7XhjZS3mbv1jE/W6vZGfrN+jUxqrDMflvmVdlQFe4VPn7+gHcpNgjKYubrwfqT1k5GxcULKqV1v/CO9rx9LJtyFAAXQ39s= 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=Te+AWMYG; arc=none smtp.client-ip=209.85.222.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="Te+AWMYG" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-88e525f912fso459711185a.1 for ; Sat, 18 Oct 2025 10:45:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809540; x=1761414340; 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=Y+vXAMQTTWEmkUojbXBO1de8JWN1eVf43j81u3Bw1Rg=; b=Te+AWMYGSj4tmHOYBRMWH/F8IboP3Q+fCgELD0AZlUws+krH6RV8Uny5ukxQz3qZ1G zDbf1wBO+WHp8uZTMxsS1tloD6Z/UZKm08XpSXPUBaGSTWS7u0A/wKUyjqmTY6QeXlES gzGcPUk7ptrtj9pZGf6snFqyXY+xKP+nXh1Hqoo+v9OsfjizFEz+LOTrsuj5r1IN73hm J2BbU41AcaAyLeo/vKhZ9bKj6HSUWrfbqY6szDlYK8JlSZCimx7J2ATI3auenrdl9xgg 7BSCJckw7gML719L6q9z9T7wBnIylAoeWwm7oeLl6AYbo5xBeP0fkGGG8o/yYj7GVhHu 1Wlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809540; x=1761414340; 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=Y+vXAMQTTWEmkUojbXBO1de8JWN1eVf43j81u3Bw1Rg=; b=I8dFvOx8eO0e8BWkwC8eJ8EapNjotA/xnOFqxAje/157lzKXQXs4WBY1FbAM6a5iji jphKB43M9aJN8Gj92RoC4c+0/eT0/ULc9iKlS7DR2xpt+Fw97fkl8EhkSZFBH+PCmLm0 erC5enJV+CvvKYwoLDV9U7Fvn1cT4hz+qOCB5ERQ16yj/BRZMUNs1J9+RKpPCjq03nOY DW01g4AIhLmh2nGV/8lXwRFE0/H4/hNT1tiW65aciyxmM6oG791wEwLcHsapXsKcEqFl S1m90ATgwKtwPJK+yQ4Fg0fOhC6STrAq9/ztzCDVBCwOHpcRz7kbvkxaDEEa32lFkDhr i9Qg== X-Forwarded-Encrypted: i=1; AJvYcCX/jS3MfI+JFmXv9Sf+phNPEt57EtXXyZKrgW6Ii4mLUqM+sRTgRIVk0hrn0Y4v2z7rl1im7FvPM0UMjtY=@vger.kernel.org X-Gm-Message-State: AOJu0YyMAYMzIvT5IhSLnScIW0egKjB1aJwGFLna/VP6xDYOgfKS50t2 P4vIwcyFtJMvrgoClhgI2OybQOSB+7xg5VOSPfD7iELVZW7fMQ+HRVIF X-Gm-Gg: ASbGncts0NyxNlYp8jLLWMjWFSYHniAAtrulsVWLT4lz/V+20EeD/Ym1LNsCYNkwUsF acoMo0XH5d7Pm9aH8ltF/JbqUKz4YaiEdz/V3IqSGNmGtkQkYr0gNOHFUEAnP37rY9hiRcjWtp3 4bdaEtKWeZ6wE219r8oD2XNFoeHOtQCThLa1Jsg0P5t8fvABeyue4Qfsz/5oncDlGlM5MyQ98WJ tGjWn8f00pYuAUkWXBtQ+vL0KG6Rxow9rQAIxwLRi53FprzxMGJO3X411WcfCEdq4AjZ3U2Ita3 oUjBMuGOkb0M1qjfvL3udx/y79+oy9Tn5M7Rvv+7DT4wVQW7dXSUL6iU/uF3mD0FoVS74fYmyk8 cKYOafRzqpD+NmQQi9WEQEDWS8wX3xSSi+kO7rBToHjuH8622yCbeiy2H5Q/YB5KSntC+wHv9vA 1/blN+gMlWw1t4duTZjq7NBFURHMqSfvj2UGDF+lfsPVvcwZ9lBg62Cf49eIdY782fIsnTCwk04 q0VX2tJwqVt22sIhQ4U/u9Z5/tdGDicQEBTrM6iWT0kTxhEq2o3 X-Google-Smtp-Source: AGHT+IF2b+xiML9xjqA23uk9sgK2DYeECM9Ckm8gu0/pdYUA9bmcAEH6Tg4P0+oRe/HNA9P52OxDww== X-Received: by 2002:a05:620a:f04:b0:88e:991e:cf2a with SMTP id af79cd13be357-890709e6bbfmr1147502985a.44.1760809539813; Sat, 18 Oct 2025 10:45:39 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:38 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:13 -0400 Subject: [PATCH v18 02/16] rust_binder: remove trailing comma 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: <20251018-cstr-core-v18-2-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809526; l=981; i=tamird@gmail.com; h=from:subject:message-id; bh=6FtTg88GY2fWPari0/xVYIFZl0LtyM/QigeE2PMN1js=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QDmUAuND6Y30l5/wiMpkJH4TDC04JmcQb3JxiK1A28k2upCho1xt+vnLZy55U4tUVIHHZi0W9Xs LsFR1ERakPA4= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc This prepares for a later commit in which we introduce a custom formatting macro; that macro doesn't handle trailing commas so just remove this one. Reviewed-by: Alice Ryhl Signed-off-by: Tamir Duberstein --- drivers/android/binder/process.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/android/binder/process.rs b/drivers/android/binder/pro= cess.rs index f13a747e784c..d8111c990f21 100644 --- a/drivers/android/binder/process.rs +++ b/drivers/android/binder/process.rs @@ -596,7 +596,7 @@ pub(crate) fn debug_print(&self, m: &SeqFile, ctx: &Con= text, print_all: bool) -> " ref {}: desc {} {}node {debug_id} s {strong} w {wea= k}", r.debug_id, r.handle, - if dead { "dead " } else { "" }, + if dead { "dead " } else { "" } ); } } --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) (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 9BB942773CB for ; Sat, 18 Oct 2025 17:45:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809546; cv=none; b=phTeQsXGUo+vXZAbJbtJCzjzKlK7N0yL3BPV5KM/jR4x8Zz/Rc/jn0JtloaKhJHSNhI4grTDHyBjRYvM5GvU5rXt+7qEGu95rSZeNWk/kU/osKcbC+JHF7nG9CYZhHEgRRoYobbU+h1fMUUll+MXilHnXUwjzpkvuTw2wcyl5pg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809546; c=relaxed/simple; bh=872/2/9eITdb9tB+ajd4McXNzNIKi7XLnXFm8ifjokI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=P7VmC39PSHzBvJC/a9D7KNrEAwbN/+AuRAxkKn9yp9xMq6rDgEPe8ATVjvh/W35H2dr+ariCwR3tM8cMDA+HC5MsAczG/nlGSTFZKeSIkn4X8WWVUP3F0mXu0JNnmdXCNi7KXI0sHP38m+F79Eg+y/gtVOV9th0MdlJJw2vC7eA= 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=PiUSbTna; arc=none smtp.client-ip=209.85.222.177 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="PiUSbTna" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-8901a7d171bso370095785a.1 for ; Sat, 18 Oct 2025 10:45:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809543; x=1761414343; 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=WxxD2K5FdBz/EnZVjAulq7wLhETf3uBIbeo+/VSTI5o=; b=PiUSbTnawi0Y2gAOle6WmnfWCMP15/NZEFmhoWZ/P8IE/4TCxmGjSoi53OpB/Yl7Lo /Zswgw8ol5/9UeFvKlNkHdyWX81ZKlWnsSmTb9/L9ttW3D+7oojqWaXLXBm5IuaTAWAZ zzx7mr2BpUeRb+HK/FjLv/xzNThgx2XnCClmTyRlPo6/twf/ocjqFQWg1IUcESd8hnVP m1S44t3z4VO+iQ9fuLTi03/HdihgxNiTi9JqOcYIdKACT2i21syOexoVSijXEAZWEM/w TBLUaURZjJI2t4IhEj9sagARG3zDp0VCz56QWREA0Z1RqrYl7Pz/sZAalkncJcCLNSGL xVsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809543; x=1761414343; 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=WxxD2K5FdBz/EnZVjAulq7wLhETf3uBIbeo+/VSTI5o=; b=NGuRQ4riMTG2oYLQcFCf3XQczF7A0n0RqoFTN+T3orZXg9BWyqWAdLiid3zCIwyfqm OxuxNeSuVt+yB4YRU3Vci+7Ezw17/Hoyy8j2ekRRbxvkkzBZ4TXrncMuYOAPuxK/ABCX zFXm9tjUB+tUpiKUu5OkSSr8ToMpd02iMtSLLLE+aeWJrA7K9ArLT8DHRniM3uFBoCp5 iW/Aa5CBef012yh9Egpn7ONpj1SXMHgV2jjCty4z+AuuWRkDHDbaA5GAdkBFle9gFx9M +5TKDNbwMneNe3neA0VaIkC6ndBLTXblwuNeFCjcwK+TdNCXBkBtFos2/0rSqDjlkPRM WPrA== X-Forwarded-Encrypted: i=1; AJvYcCUevlLFDK+KJVbEGmyW/WpsYerOLBaQITwyLbRT6qMWrk6YUgYrDISbBeulMFjik6+5yBGatk5r6xjB5Us=@vger.kernel.org X-Gm-Message-State: AOJu0YwwoxabZ0l5fzZJWmR3QOv90XHNCdr81L/XyX3jSRYpbYjAEtD9 fBDGNtrzMSfDvnIQKjQzvibtk4+OpO97gpA2td/KoQWACVFrzPfq9WWq X-Gm-Gg: ASbGncs4LP/OYw9SVHNs/DFo3nvSsYpURyYj4GIQAuo6dLg33ENyvbMbjUaKGyOKHjh 5KY6HDBjoErKVl2zblOpK+Yi9H7BH5ilftY3vK0Lx+y3jJBAmmbcxXj3SMa2TOUO8mvR/IRS7cm ohEIjI4q1Bfmj7SY+bM5y1g78bAq20JMBKXWF1EkG5WSZnW9sKJG8GfM4djb6EvKeKHyQ75AuOI SiDx+CQHERWgOoVR7mR6knB3vDhFGpaZSOOUrZnUxQXDTRQXPVGFqwEj3lDr2OfpOwQ1xyEt/sg /MsCH2RtKhS9PirPSkkynvyI93YZ3jweQuimOimtZrOq1/cb4iV5IJr8p6w+FFApjWBgU+miDXt k/IfPt4KYbsQkHgzTcNA0E97XutUoBrDo3lW+1fvERnqURW3A8eoYSQp2jLReK+Q2KhbWxoA98O a0E51VxOY9Uv8DrhezW5Xw+7vnFvZei3GSNnQHWgWkwY+cP+bepfRqr2EvG4HAZw33kbOptTh1i mJ0IWUumjh0LnoVvMZh0GNpdzT/1DNaHIlMQLnTFD6yZR9uaYA/A8OK+sU6le4= X-Google-Smtp-Source: AGHT+IFKKdVLl3mAPx5GW1O57JDFIbYY3aQNyGp5ohShtikkzbyW7xTlAHv9ByPokofKb8ncQ992Dw== X-Received: by 2002:a05:620a:28d0:b0:891:7def:94a5 with SMTP id af79cd13be357-8917def9615mr601979985a.89.1760809543355; Sat, 18 Oct 2025 10:45:43 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:42 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:14 -0400 Subject: [PATCH v18 03/16] rust_binder: use `kernel::fmt` 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: <20251018-cstr-core-v18-3-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809526; l=1195; i=tamird@gmail.com; h=from:subject:message-id; bh=872/2/9eITdb9tB+ajd4McXNzNIKi7XLnXFm8ifjokI=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QNpeE2O2veZx/WAQcXn2BPsuVFmwejvaIZ814PGVaIzTcLISv+9UjXgL3SnRuXBWt3P0YjfBZ5X ySAtgUYGZcgw= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Reduce coupling to implementation details of the formatting machinery by avoiding direct use for `core`'s formatting traits and macros. This backslid in commit eafedbc7c050 ("rust_binder: add Rust Binder driver"). Reviewed-by: Alice Ryhl Signed-off-by: Tamir Duberstein --- drivers/android/binder/error.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder/error.rs b/drivers/android/binder/error= .rs index 9921827267d0..b24497cfa292 100644 --- a/drivers/android/binder/error.rs +++ b/drivers/android/binder/error.rs @@ -2,6 +2,7 @@ =20 // Copyright (C) 2025 Google LLC. =20 +use kernel::fmt; use kernel::prelude::*; =20 use crate::defs::*; @@ -76,8 +77,8 @@ fn from(_: kernel::alloc::AllocError) -> Self { } } =20 -impl core::fmt::Debug for BinderError { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { +impl fmt::Debug for BinderError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self.reply { BR_FAILED_REPLY =3D> match self.source.as_ref() { Some(source) =3D> f --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (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 F23CE28489E for ; Sat, 18 Oct 2025 17:45:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809551; cv=none; b=XwfbsCktYaKUzQJ5KYI3n5lGQGIaEef+AFABBeTDGmT/z87bKm08yteEb0pgahY5y6osBI38S0T62TnUOE5H1Sc/bDx+jgwQHYZ0qCsQ4AF6jMAHbdjTJZYrtpIXLhp6V6eOCPi/l0oyl80vg6zCwGuoaAr4P88mivDm31Gv008= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809551; c=relaxed/simple; bh=CzY30Cbw7NH9BCqW+7Dm4yyfJiEmTcSRj3QBxiZsJWU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o7UpGv1bsHCoKZqK2UvMMayvXRF9PSTPPI4SpZhPxUUomQ/S4/hEwEmWUlAFlkyflyPdv5je6Zs7vgFXsP6nxrH29AKEXFTqaOvDAxVDWaCUvX14mW6Ru9KAmNnAADWTwU2xA2cDrubNWe7zGBXtXhUpkl3Jtq1uo2wke0iwfUw= 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=JQn2XBtZ; arc=none smtp.client-ip=209.85.219.49 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="JQn2XBtZ" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-87c1877b428so54462106d6.1 for ; Sat, 18 Oct 2025 10:45:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809547; x=1761414347; 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=lawTNFgWMdwiPfh6WDKLTV6aPOfN+Nzqh2uzIhroikw=; b=JQn2XBtZHFcfyd0otLfHMIY2rjaug1QAyR3P4HT6Nhx+HGjJ8IDNRoAsH7r+NltaEK jT+mD32eTIWFecS4qBPgSgaKG949+MgyP6TcOKiRvoN/IOOiKulaIcatHQ138pUn1MmS at2q3Vqo0bJHD72ziz/6guu1rn06JyzC3zTd0A4DORkrXD2BX2/PWgiTj+gS69usb0+C Z4pd0Ia28fm2fZjMqThmk6HfJbJrQ60ypyxPqHEfGtRG3bh6AOKUxb92yuOBpQc6iIUN 7t4DkBAxlVWEp6A5RxIP/7szbwbuYq1IfuLwxMo8cyEoqleYqeToYMkoanI8KR9vMfVC zBzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809547; x=1761414347; 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=lawTNFgWMdwiPfh6WDKLTV6aPOfN+Nzqh2uzIhroikw=; b=JGa+wXzghyEMDwAmYW312IJAuThKnCk+qDoq5oVNUZA1uP9q1Pn4kWY0k3+l4Wao24 oabF8A11QHcpNRZ85jjdbxKDsSgJpjAIzU/SOoAeDWdKYoVChiKMopLb3mwxsrUZcCEA gQ2Z0v6o+TyvnsdkFVtjneDxiwyMn6Fqcge2DREIGzg/b9ZM9uhUntQj7ffemN3rxWkZ m6RJBx7C1F7vp86odbsRjFrk5JVbkdMU1x73XCxL6nI0D4Uvs9rPSO3xCqyso4H9Cq7/ fnZOh1h80CqnMU/GO3HA3+2wuUnoCtQHyPQywN3Lsa5Nepp9P1TXSDV3sqOdkIKCNKlg gBcQ== X-Forwarded-Encrypted: i=1; AJvYcCVRD+aPtP1tAIJ/jDk+GAwpapnm0/6cQICtvZPzvpxb0/X2laqzEEWHf9dBpohO8dLT2t1CTTzIpQVjIdg=@vger.kernel.org X-Gm-Message-State: AOJu0YyM06ejVqtVP9Dff4Tt0B8eW55VbEp0jXAVGTN/MxYldwCxTCDW 6tIsbMNPLrkJG88m6VuNJjgp1UkgF6xKrvBpaRh+zbtQX8RDAKTUH1c0 X-Gm-Gg: ASbGncsFUFwiJcBqWaVca1OeSny+9M6+qRBcQN1mDIl8Pir9APPVL7ihm0a8fMjQPmI G1B9l6jHmYbRuPdVCSxpu/6kQFuoP6AJvopFipBpRDFkFT2P+VxDskbeCSEzORmRHKwiTpfYGJ5 tBjOAkbp1ov8s1aAQFP7PFF/WuBASJ9n2m9ZdYgAEn5c3mP2HvREptSj/YClCXHM3oJrZVVug3E 0ab5rZj+zS7HdjIJy9w6ilJ5ywMuy6jh3os7MNVr9RHom3c2RRt9Z/T9rc95X3p4EusFUHkAJnF doQaxB7gArsJxHREiTr8EZJai9EXfpQH9LTUXvmNJ6ZhTliE0eog5U7NGs54N7H1VsbZAJ9MK// jXd6bqlXSkltsNx02hsDLCjXlVM1oWqw19MrNSwKp02mlLb52e2CmqESvKhHpS4RrqouTWHp4ld w8TEzJQsItIIQtsnuTmCjHdy1nKqSq2d+FEwMLLG6W+rexD6/0C2+hQtCJZ9g5IRSYS9gRehe4+ LXADE8sME7LoKRvuATKeun8NMrdJWIOLf2qrSnLm5b0blCcxNPL X-Google-Smtp-Source: AGHT+IGtoC16cs2IUHy92V+PgbYqI7ItzE0B6P6UQD9FJc874xh/zcTQPxmAHJdRXWEe38KwPk6DJw== X-Received: by 2002:a05:622a:1350:b0:4e6:ebe3:9403 with SMTP id d75a77b69052e-4e89d3578camr111769721cf.41.1760809546751; Sat, 18 Oct 2025 10:45:46 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:46 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:15 -0400 Subject: [PATCH v18 04/16] rust_binder: use `core::ffi::CStr` method names 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: <20251018-cstr-core-v18-4-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809526; l=1838; i=tamird@gmail.com; h=from:subject:message-id; bh=CzY30Cbw7NH9BCqW+7Dm4yyfJiEmTcSRj3QBxiZsJWU=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QCdjYy/3zPtDG6mLhbi/m87N/OQUz3F9LUrbbVL/SdtvY9mUE4M1GxOy/SM9SDWwBVOLExEXvgS qD3AZBhe7nAg= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Prepare for `core::ffi::CStr` taking the place of `kernel::str::CStr` by avoiding methods that only exist on the latter. This backslid in commit eafedbc7c050 ("rust_binder: add Rust Binder driver"). Reviewed-by: Alice Ryhl Signed-off-by: Tamir Duberstein --- drivers/android/binder/stats.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder/stats.rs b/drivers/android/binder/stats= .rs index a83ec111d2cb..10c43679d5c3 100644 --- a/drivers/android/binder/stats.rs +++ b/drivers/android/binder/stats.rs @@ -72,7 +72,7 @@ pub(super) fn command_string(i: usize) -> &'static str { // SAFETY: Accessing `binder_command_strings` is always safe. let c_str_ptr =3D unsafe { binder_command_strings[i] }; // SAFETY: The `binder_command_strings` array only contains nul-te= rminated strings. - let bytes =3D unsafe { CStr::from_char_ptr(c_str_ptr) }.as_bytes(); + let bytes =3D unsafe { CStr::from_char_ptr(c_str_ptr) }.to_bytes(); // SAFETY: The `binder_command_strings` array only contains string= s with ascii-chars. unsafe { from_utf8_unchecked(bytes) } } @@ -81,7 +81,7 @@ pub(super) fn return_string(i: usize) -> &'static str { // SAFETY: Accessing `binder_return_strings` is always safe. let c_str_ptr =3D unsafe { binder_return_strings[i] }; // SAFETY: The `binder_command_strings` array only contains nul-te= rminated strings. - let bytes =3D unsafe { CStr::from_char_ptr(c_str_ptr) }.as_bytes(); + let bytes =3D unsafe { CStr::from_char_ptr(c_str_ptr) }.to_bytes(); // SAFETY: The `binder_command_strings` array only contains string= s with ascii-chars. unsafe { from_utf8_unchecked(bytes) } } --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (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 2CA6C2638BF for ; Sat, 18 Oct 2025 17:45:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809553; cv=none; b=lHv59pYfSgcPeRduER+wAbLlf5l2azAZC7fTOAVuP92/NkeTfM1So42cN67lEMr/6qaMwDAK5ybdqlz8NnfPkTgjJ8w8uoCIFGd47E1iHXn/ognHXOguTI236W5QlpoNH+oOz6LBVcOlR55tM5k72AtFzm6pnDJHafR8fVhupGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809553; c=relaxed/simple; bh=/cgHz1cX/7pqPCiwokdGYY23t2YMKDX7WgaCRbImZEk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SFGYwupkdRd9ZjiaUFpXr0dqqzHkrjMTkDrpFuY3PK3eSkRB8l0YRgwEIoXDNKBYcsTO9o8eQNElfOtW0wMVQfn5dVUKli83+HBPAPrN5F/jiPr5CPzS3qGfbk8kWPsnyWCLCCSAEIxnWVFTMzE8NVDrAlYjKtxYRPI6SHReSHI= 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=aw7kVOzU; arc=none smtp.client-ip=209.85.222.178 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="aw7kVOzU" Received: by mail-qk1-f178.google.com with SMTP id af79cd13be357-816ac9f9507so586601485a.1 for ; Sat, 18 Oct 2025 10:45:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809550; x=1761414350; 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=g6x4i2Nx/KcrVad3Kw/MMDkaM+hSW8mJw3uIz+XsVU4=; b=aw7kVOzUSupMQBgDrjBE7QuJ7LuSFqr+NhJsKQ7LCquYg/kvtDTTFLRs6nBILlaamN inkYr+EVR6qY1CAyYVXZm1jjA6ScXcauQxnBH8OXODNmN1vpZuaMmYS86NmfrRk44JYJ hyFNp35WF4ZNz8i6w5zk8QSXWQXAHs4Vk33n8AuuADWpCxny7VMEskeb5PaVP4qz610q 5Z68eeMf8WA7r+swC/7wvBICNrkN1mlH5Jpo9CuvGZ/pdlxfj5hFxUurO0EH1FSgjTzx zuCZ5epmWqGbRlk0lex1rsXOnLOFy9tHJwphVJIRJl3lMhNhBzwrfyMSZPRhVyCDCO45 TTOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809550; x=1761414350; 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=g6x4i2Nx/KcrVad3Kw/MMDkaM+hSW8mJw3uIz+XsVU4=; b=Wlc/BHC8tUEtP/oSCuw9tmMQ8yXzj725y9QDRSeOARVsh6NAyWEm1m9T7qgmARobVt TnoLhBtfu54nY+8CDxcgo+r8sFFycFy+UIfXIQYGYUAXytNUi27mECTVs0yyAN3dQDFH k1PEz1RuEoGra44cbUV1IxbpFax1R3vObqvykF+yf+GGHKhBmLMJYnX2/u4cH2EhkLen 66n2EILwuT07pCw1sTMVU6IuFptsKRakno8nZaWmhS5isS2SYpYB/Y+z2srC7KBSTOp1 qFzeAa1KYHPN9W3CHDCp0b6eltIwnbyJnSouWOGRDXlct6FtYzRkLOAdne+fbSHCNlL0 RJrw== X-Forwarded-Encrypted: i=1; AJvYcCUR9gjc4WAGmzxAKsmRM/qDyBI3P2RzU9p1x5jma6wgohoRkODTLkPcZB8R95b+GNTt9s9VWEoXLzAncG0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/JnSOy09qH9OoOn3b2Dpsbhd/ljyAKO2T5tnorM347W8V1OOQ bkKfLMYaur+2XfdYc+V/2Dc68GA/IMERZicIpmyBpe7Fe0BdCxctU4S8 X-Gm-Gg: ASbGncvo61Jk3Fban0EX5DOUDFA9WdFw7lz5ak/3BhdBsTQ6tUrUrut34P0JjNove0T AaJICBaojHO6cakt1pfIAFpbTPrY8HeG0zsbZV2uzE6LfOyFztH9SMOAvBsAeXphUNU3/WM4pin iTB/stXZSt/G4c9cFkFxblC+kU4RRJqu5NPeQ6FFvtQc39q1lje+nU9M5rol3Z3fdZCChxXv8/5 9mf5Y6w6EOobPoCJ+j1lVQd6M3LdYAaymBmGRFQi3rYaez4kVzagrJBkc98GUIR9J5gjTZYNwPR RnxYxrewfSxO9XKyTaDelggXkAUyHxkOuQKSDQdaBezkhsNb4Q9xeVscq9mhJIr0o3kyxNnNGcq fv1cSPOadi+6C0A8F3uxBbKKB4RSgEyrd+BALr381JM/aJst/wnnwLlzb/ZndoaFGddPkj3+KEa tWNcaocage7VaQ6BdHQ2dcejyoeeBws92gB2bA2ulcEXJ0SiC3BhbH2JG7fwaYfGNw7aS0n5IaQ DzEqGEY4yQ6vVkXtdEMtdyMnrA+8+XNmv/umqYRjXfd0OsAfct/ X-Google-Smtp-Source: AGHT+IFp9Vyr6DTgU7wMi5TzpEwlGd9IqV/k5vFAlka/PSHuVo2bkmg6CmRBEzK7leqOE/jg7Hax7Q== X-Received: by 2002:a05:622a:609:b0:4d1:c31e:1cc8 with SMTP id d75a77b69052e-4e89cf24499mr98131111cf.22.1760809550121; Sat, 18 Oct 2025 10:45:50 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:49 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:16 -0400 Subject: [PATCH v18 05/16] rnull: use `kernel::fmt` 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: <20251018-cstr-core-v18-5-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=1568; i=tamird@gmail.com; h=from:subject:message-id; bh=/cgHz1cX/7pqPCiwokdGYY23t2YMKDX7WgaCRbImZEk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QFUyC4lRe8XY0+2gwbmqCYLMq7haRexJVvoEh9TOXoK7TJHzmAqN9kHMrHdHUQpbaYKcy+kW0rr jQd4qaEURmQ0= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Reduce coupling to implementation details of the formatting machinery by avoiding direct use for `core`'s formatting traits and macros. This backslid in commit d969d504bc13 ("rnull: enable configuration via `configfs`") and commit 34585dc649fb ("rnull: add soft-irq completion support"). Acked-by: Andreas Hindborg Signed-off-by: Tamir Duberstein --- drivers/block/rnull/configfs.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/block/rnull/configfs.rs b/drivers/block/rnull/configfs= .rs index 8498e9bae6fd..6713a6d92391 100644 --- a/drivers/block/rnull/configfs.rs +++ b/drivers/block/rnull/configfs.rs @@ -1,12 +1,13 @@ // SPDX-License-Identifier: GPL-2.0 =20 use super::{NullBlkDevice, THIS_MODULE}; -use core::fmt::{Display, Write}; use kernel::{ block::mq::gen_disk::{GenDisk, GenDiskBuilder}, c_str, configfs::{self, AttributeOperations}, - configfs_attrs, new_mutex, + configfs_attrs, + fmt::{self, Write as _}, + new_mutex, page::PAGE_SIZE, prelude::*, str::{kstrtobool_bytes, CString}, @@ -99,8 +100,8 @@ fn try_from(value: u8) -> Result { } } =20 -impl Display for IRQMode { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { +impl fmt::Display for IRQMode { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::None =3D> f.write_str("0")?, Self::Soft =3D> f.write_str("1")?, --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 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 9A7AB286426 for ; Sat, 18 Oct 2025 17:45:54 +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=1760809556; cv=none; b=QOXlVuvZYqt0DGuIbGXdtlHuzzx6H734nqFHwtk4v4PZYvBQ5NUU9Rq5QHexk5r77+eZpzlqpTtM9HkLPZ5PQqdnkD4KaZJWsF/8X7i0BrFO/pnK+yfi2fO45iogLKT4BBgO/llmY1cOrvPKdh5LsabJGI/TPXfhuw2jnisFw+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809556; c=relaxed/simple; bh=VZx3xyzuE8sdJWwvMWeYLSbsWBC7U7VUNVHO5x1zs/Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bdsq6Jwcspcs8IJnhMLd1JVEAhiO8JjtYs77WiIbb0fctaQCSv2K6Z+3ZsWboooLzJi5+0V9McIT1489y5KqToVcj2B9lgvqjjE2+GsKe5dWfT4Gkm1JlTFF9MUQOqorpyEm3K+3uaYzTW6Ef6suSXz6TzeHlF4Sy0OiKiXYtvk= 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=Ee/C91C5; 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="Ee/C91C5" Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-81fdd5d7b59so42573256d6.3 for ; Sat, 18 Oct 2025 10:45:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809553; x=1761414353; 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=rhXSu5jvbOALYGh18N5SGleu51uu827FBi1PfdDv9uw=; b=Ee/C91C5ZEhh8jLb3zo2XMwP99BhgrNtp+YaYXxaDKNCdTGMxNX7K9o4GOwIvEJQOn VPYJxGP9amVyvDXMcXa7QG/gVv2xjsWuDQc4SAcAV1UoosJxBQ+mD10T2+raWIFkryWQ DBkRdCXnMIXqSnHTrE2TOLMDVmXT03J1IHmZsON9STI6iJomwUctRDGmsPtDPMeklUmQ epikSbEVtz8xB61QSeluzDShCvZ04knfJVX0TWeCnPukUu+LVad0ITlzRppvZDA/A1m/ CsmqaCemw4ZTA8kVrPWZiSROyL0AtGlLY9B/h4AczgSl/PezRYEjgJ7q1/+sNyqkS7/7 0s/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809553; x=1761414353; 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=rhXSu5jvbOALYGh18N5SGleu51uu827FBi1PfdDv9uw=; b=AdyQLhjVe3M5dJO/NyuaitS5uw9oOzJPTtW1Mzrglg/rrEE5R7rFB51GtNAM8p2mXi vO6SKKfAZoznL9FhXGkXUSlImcKxjceXsDRGQDi4m5n5zG0QsIDMTjY4tf781llPT5Os xfMTTCjEgWrtOHWc52Ri9d9mjqTnpcUdabNtOjXPKI4cSV5WnBBU3814M27fQFLz4uh3 Z2ysNPeSHrPE/8/C67kyk+/gdGkfpbR4gjLADzcNQscIdB9M3LDNeSPr4pIfz8uTVmN4 oU+hJ7hIcllRCbZM6Jn8s+I00s6TQxzUbD2J2YOvCmhDpazNhHGpLnbQw89rzzm0spS9 ++Ug== X-Forwarded-Encrypted: i=1; AJvYcCXQq32qfOEorSfII8QVEvtf3uD1Tf19jFulZ4P2aTkjXmM78QvjeX5Y2L+MDogNt+lDHpoMnYA1vNsLQjc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/kSc3fRM793BAE0ApQYaN4gQHWXr8x98VZ8XeSSjU2k6uwLwF WdUTgBZFRLFxaHAGE7s/KrbyErQSRndJqKZ6ikW3G9IvulGORLPHXze3 X-Gm-Gg: ASbGncsAhmfZEE425DMoGfxIzJfbSJ+RuTC8wsPxcusM4hnFgG09xz5UHBdWhkL8jwh 3Sh9xlrvwP09/0rKDQaK1y5wlFUvHU9KexFlLBE4UDJ9JX5gLBkPchdZO+YXUwdQe4Qoe+lR0lJ vGCYgcpQixYSK7b/U/FS6sywICJhi0z+6jieJptVAowNPHV5BnqDXbqO5/M6R8CjYFHCpFqQNOe Tc49kUQ0WD7OX82AWy6vlsY8vZxlLAM8/TlxDbG/kQSDCdx7GetBEf2aCH9NRnbdpbfNtTlm5ik n8ewCgIg536sFNAEa3FjxRPxjNANi/08q/YFOqLFk0Ep2vtbM3V1UFLJOYcN8P3HTmqyHPJwh8a DB0AJEI19eXvJ8bOfe2E0iFG4PiO/QnNtls+ZaQ32Guue8PQ+4qqR6N17m/riGKEJmxCw3Ofgcj RUNGgHICr9fzycDvJlSNVwa8Xvz+sN7dGLsl1wJk14sltPkm7B8y7IBKEdq+V3DMA9fiTrLYqIh TLKZ8+pDtQvMs/1SicE2+Z8WHNehYFtlWEzDRLJZIugWtKjhvka X-Google-Smtp-Source: AGHT+IHwmbCilEbE3X/epDbrG5LC82vpTK8X6AnN2QSsDBY9zv0L0DqM69lN1FMFmljkUNXxkq4AOQ== X-Received: by 2002:ac8:7dd4:0:b0:4e8:96ab:da8b with SMTP id d75a77b69052e-4e89d283014mr129620021cf.23.1760809553435; Sat, 18 Oct 2025 10:45:53 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:52 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:17 -0400 Subject: [PATCH v18 06/16] rust: alloc: use `kernel::fmt` 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: <20251018-cstr-core-v18-6-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=2039; i=tamird@gmail.com; h=from:subject:message-id; bh=VZx3xyzuE8sdJWwvMWeYLSbsWBC7U7VUNVHO5x1zs/Y=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QPuKAuVf9GfET2NKL0q4bp4Tc3Ay6O1rJo/qozL6xioRoXG7kz7tkE7k1hDE/ytV5U50M81wQNc BkpwRYc3KSAs= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Reduce coupling to implementation details of the formatting machinery by avoiding direct use for `core`'s formatting traits and macros. This backslid in commit 9def0d0a2a1c ("rust: alloc: add Vec::push_within_capacity"). Reviewed-by: Alice Ryhl Acked-by: Danilo Krummrich Signed-off-by: Tamir Duberstein --- rust/kernel/alloc/kvec/errors.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rust/kernel/alloc/kvec/errors.rs b/rust/kernel/alloc/kvec/erro= rs.rs index 21a920a4b09b..e7de5049ee47 100644 --- a/rust/kernel/alloc/kvec/errors.rs +++ b/rust/kernel/alloc/kvec/errors.rs @@ -2,14 +2,14 @@ =20 //! Errors for the [`Vec`] type. =20 -use kernel::fmt::{self, Debug, Formatter}; +use kernel::fmt; use kernel::prelude::*; =20 /// Error type for [`Vec::push_within_capacity`]. pub struct PushError(pub T); =20 -impl Debug for PushError { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { +impl fmt::Debug for PushError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Not enough capacity") } } @@ -25,8 +25,8 @@ fn from(_: PushError) -> Error { /// Error type for [`Vec::remove`]. pub struct RemoveError; =20 -impl Debug for RemoveError { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { +impl fmt::Debug for RemoveError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Index out of bounds") } } @@ -45,8 +45,8 @@ pub enum InsertError { OutOfCapacity(T), } =20 -impl Debug for InsertError { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { +impl fmt::Debug for InsertError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { InsertError::IndexOutOfBounds(_) =3D> write!(f, "Index out of = bounds"), InsertError::OutOfCapacity(_) =3D> write!(f, "Not enough capac= ity"), --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.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 1FDC72DC76E for ; Sat, 18 Oct 2025 17:45:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809561; cv=none; b=CO2//0bTyshFmuOCUzqJI6CKkjnYvnIb0fXogViJAJZrkmvnBbnxrU12mVvHDVcSf5+YbUoXg0SpyvMUFqZEryE5+ZdXxTqYyLLYl+zoW9bVJZwSp0q+j2qiZeK9CMAQ9wfAjm1tcTHWBgeb1UZjm2eqOiHjERsgoWbZTDfg4ig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809561; c=relaxed/simple; bh=2RO1O8x8vlwhifkhfd816jOQiIu5L43+GQ3qhkZvCCc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hxZScbTPwzyS1RdIBflBfIUSFLEHpxhYSUd+gqrwji20JH4fjFAQOxq+N2m5BhftXCRrI4aNDH9PVlle+dy4dsLsbquhMsXo+kZ/2ipjhCKn2hIVRxqZBh/dQe4KIl3C0+isIpLpUZQb9O3r/YaA7rCm8mAHh+ouNqW8ouFIGTE= 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=GL7XNcaR; arc=none smtp.client-ip=209.85.222.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="GL7XNcaR" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-88f8f346c2cso447373885a.0 for ; Sat, 18 Oct 2025 10:45:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809557; x=1761414357; 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=a15d5fAvykxuJ32X4GoFun7W4EexMfG4QkmOfbTlvaA=; b=GL7XNcaRisIQRpvNANKfLsPUjWi9UKTcVHFQt3rKxT9e6k6Z7Mq4yV0sQYC4gO1Hcj sJyg/79Klvel4XnE0xuudtNs0raQqIomw/EIVxnvdo31WaO+XZDR8estB4jBg5M+8DNg URsz2s28FaId/vbAeX53DFBXSGYMLHiveLI683yf3JutpfZ5O+XRJc++HP8IxECwm4yF 8sEzTLFwSqcIbkp2aiMS4Uz39mbuLXRrWx3q5+MShmY6MLypWnyT/l5akGk1mcXye4OV c4/9KfD+bGDJBWvS8XUAuaF170gODiUmD4ZCYEr4uNoR8GZj3ycLBqJwQ4imwcR9Sx2C r0ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809557; x=1761414357; 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=a15d5fAvykxuJ32X4GoFun7W4EexMfG4QkmOfbTlvaA=; b=QStK9GoooiHNd1yljouzVPtODFJzqCTHgNc3Q/7/TKRk0JhEFpp4VAv2GxNxtU0Puk 0EkQGnG7+fGGmyIn7eyVXzh7ldXMcY5E37l7BMZcfyU3szEu7xAtP0wBiFvgv2ghac/n wJabQni/TC+AMbyvWvYRstRIA0FUd/AmieetBonnFK7CM+H0vijV/Xqd5TUzTslsQuj+ MmKGetGhetbc++YdsQz+Dtyt9nk+N3M9/7L2gJFt56zYJzZXDogAjZd9ImPzJsCsbI5U VEu3Md+sGmIGyzmXdNrMSG5p7nCLb45EhgGKX3NyEhOxh3lN1jXGFz5z8atQ63ZO6TAX 1tCg== X-Forwarded-Encrypted: i=1; AJvYcCV6Y/Z3S0kekyKiUBUXw8QSALBLSofHwEXXUIEvesnRYdLpHSTb2/L3xBVXhOs1/XqnUUTWOR5PWrrMmeQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxl0rkdo01JDzXCWJrGTIj3y5dAe2960yQkUq+I/j9ym4iV6/u AIcMnezbaQjhnOvfWQ/dlK/1TEhbQ2SnxGdTsy4yYYkc7fIK8+CnIMlQ X-Gm-Gg: ASbGncsbgOSQga6Aq5ahGrmq8uK9ZwuCqsfawI59hBDlwc++Ydu6+f9BfwrZrppU1FL gkDWsQr90vukujxta7YFCXRJBiRb4/6ISCE/OlUrqVPLkhAPnH4cCFRw92edbrDczZTNcpoyioy V4aF6cKZPifiP6SFHNmiq5pB2VXOrz6UjKkyoCY14bMmO5sOwpPPfrGTjTNv8KbFFQ4talQR32d E79CQehfPyXaTcCA9VKQyr1yZIIQP81J90uwygBdfxaKB5hpIGH0VNnUijehj6iche746XdgF6T 6j241jN4dWXf3v/PPbAB6kOq7xt1BwYskisGPRaMmog3RVXZf//gzVRHeVQB/gpsEhscoH//vaj 7xNDLXlJR4VrHlvz5X1kr0TcOLyd5s0lCXWFrBDJKpKaF0yEdgBhLhFT4kKEJAgFQOMLgq2Jf7H PoMPnWAAd9CqCUKgx/60zREZ+1t7glWsmB0budRqknp7JF5y46S34qNQapjnGTaRFjJ9zWXKiX2 0F/UNbOFpsP8T1SKxny8Vj1dCcz4pxCK2ZazRPq0CnTZFKPzWlL2NGzNO2CpruL7dDuALwr2w== X-Google-Smtp-Source: AGHT+IF0jDSr4+x2H9ezxo4E3+k6pmF019NwUbAdiwnAzhTA8DToLrkpZSznJQWz124+QD1Dm24uLg== X-Received: by 2002:a05:622a:1102:b0:4e8:b17d:916b with SMTP id d75a77b69052e-4e8b17d949fmr28810291cf.51.1760809556972; Sat, 18 Oct 2025 10:45:56 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:55 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:18 -0400 Subject: [PATCH v18 07/16] rust: debugfs: use `kernel::fmt` 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: <20251018-cstr-core-v18-7-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein , Matthew Maurer X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=4664; i=tamird@gmail.com; h=from:subject:message-id; bh=2RO1O8x8vlwhifkhfd816jOQiIu5L43+GQ3qhkZvCCc=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QMATZCii+4KTdwmO4cL/e3cZ7fEhaFxHdhr1qxcBeKLRmamGNwC2RJ/lvy+nkubg5+s2N1SC1jy AY70o32pQ0gI= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Reduce coupling to implementation details of the formatting machinery by avoiding direct use for `core`'s formatting traits and macros. This backslid in commit 40ecc49466c8 ("rust: debugfs: Add support for callback-based files") and commit 5e40b591cb46 ("rust: debugfs: Add support for read-only files"). Acked-by: Danilo Krummrich Reviewed-by: Matthew Maurer Signed-off-by: Tamir Duberstein --- rust/kernel/debugfs.rs | 2 +- rust/kernel/debugfs/callback_adapters.rs | 7 +++---- rust/kernel/debugfs/file_ops.rs | 6 +++--- rust/kernel/debugfs/traits.rs | 10 +++++----- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/rust/kernel/debugfs.rs b/rust/kernel/debugfs.rs index 381c23b3dd83..8c35d032acfe 100644 --- a/rust/kernel/debugfs.rs +++ b/rust/kernel/debugfs.rs @@ -8,12 +8,12 @@ // When DebugFS is disabled, many parameters are dead. Linting for this is= n't helpful. #![cfg_attr(not(CONFIG_DEBUG_FS), allow(unused_variables))] =20 +use crate::fmt; use crate::prelude::*; use crate::str::CStr; #[cfg(CONFIG_DEBUG_FS)] use crate::sync::Arc; use crate::uaccess::UserSliceReader; -use core::fmt; use core::marker::PhantomData; use core::marker::PhantomPinned; #[cfg(CONFIG_DEBUG_FS)] diff --git a/rust/kernel/debugfs/callback_adapters.rs b/rust/kernel/debugfs= /callback_adapters.rs index 6c024230f676..a260d8dee051 100644 --- a/rust/kernel/debugfs/callback_adapters.rs +++ b/rust/kernel/debugfs/callback_adapters.rs @@ -5,10 +5,9 @@ //! than a trait implementation. If provided, it will override the trait i= mplementation. =20 use super::{Reader, Writer}; +use crate::fmt; use crate::prelude::*; use crate::uaccess::UserSliceReader; -use core::fmt; -use core::fmt::Formatter; use core::marker::PhantomData; use core::ops::Deref; =20 @@ -76,9 +75,9 @@ fn deref(&self) -> &D { =20 impl Writer for FormatAdapter where - F: Fn(&D, &mut Formatter<'_>) -> fmt::Result + 'static, + F: Fn(&D, &mut fmt::Formatter<'_>) -> fmt::Result + 'static, { - fn write(&self, fmt: &mut Formatter<'_>) -> fmt::Result { + fn write(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { // SAFETY: FormatAdapter<_, F> can only be constructed if F is inh= abited let f: &F =3D unsafe { materialize_zst() }; f(&self.inner, fmt) diff --git a/rust/kernel/debugfs/file_ops.rs b/rust/kernel/debugfs/file_ops= .rs index 50fead17b6f3..9ad5e3fa6f69 100644 --- a/rust/kernel/debugfs/file_ops.rs +++ b/rust/kernel/debugfs/file_ops.rs @@ -3,11 +3,11 @@ =20 use super::{Reader, Writer}; use crate::debugfs::callback_adapters::Adapter; +use crate::fmt; use crate::prelude::*; use crate::seq_file::SeqFile; use crate::seq_print; use crate::uaccess::UserSlice; -use core::fmt::{Display, Formatter, Result}; use core::marker::PhantomData; =20 #[cfg(CONFIG_DEBUG_FS)] @@ -65,8 +65,8 @@ fn deref(&self) -> &Self::Target { =20 struct WriterAdapter(T); =20 -impl<'a, T: Writer> Display for WriterAdapter<&'a T> { - fn fmt(&self, f: &mut Formatter<'_>) -> Result { +impl<'a, T: Writer> fmt::Display for WriterAdapter<&'a T> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.0.write(f) } } diff --git a/rust/kernel/debugfs/traits.rs b/rust/kernel/debugfs/traits.rs index ab009eb254b3..ad33bfbc7669 100644 --- a/rust/kernel/debugfs/traits.rs +++ b/rust/kernel/debugfs/traits.rs @@ -3,10 +3,10 @@ =20 //! Traits for rendering or updating values exported to DebugFS. =20 +use crate::fmt; use crate::prelude::*; use crate::sync::Mutex; use crate::uaccess::UserSliceReader; -use core::fmt::{self, Debug, Formatter}; use core::str::FromStr; use core::sync::atomic::{ AtomicI16, AtomicI32, AtomicI64, AtomicI8, AtomicIsize, AtomicU16, Ato= micU32, AtomicU64, @@ -24,17 +24,17 @@ /// explicitly instead. pub trait Writer { /// Formats the value using the given formatter. - fn write(&self, f: &mut Formatter<'_>) -> fmt::Result; + fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result; } =20 impl Writer for Mutex { - fn write(&self, f: &mut Formatter<'_>) -> fmt::Result { + fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.lock().write(f) } } =20 -impl Writer for T { - fn write(&self, f: &mut Formatter<'_>) -> fmt::Result { +impl Writer for T { + fn write(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { writeln!(f, "{self:?}") } } --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) (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 0A83A2EC0A3 for ; Sat, 18 Oct 2025 17:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809563; cv=none; b=sO5QNulUu+8LeGFZJUmfCW03I4/72CvySM4c50CngiFoFKyo8HJDJkpDkSaXJmOqb4xk63GB0WDRQKsO93vciOR6kyGBc5IaQdb0wczc0ym6lF87AKSr5MkMw8CYiOFKZxTkzWLazeldzSPYz0deNpwwEzMt5/3GTN76F96fx3w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809563; c=relaxed/simple; bh=03bsWp5q/RvNg/sXSrzNos1bBBR49+qyJdq4+m4Ha6w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MIcm+XGRtaSijSgFvlFIth61mGtD9e8/MvuTHL/Umbx8GFIkH2xdDaKz2ntQfIArKz27Q0vQUXF7Fg9jJlBuJHdcYTPoKHalDkg85Nclnk/s5RM3GY6hioLIe3Bd3MRKak9DDadEObgp9oxHdJFr0X/sgkS7tqRkMlyvyFRxBY8= 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=B4d5twMq; arc=none smtp.client-ip=209.85.222.178 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="B4d5twMq" Received: by mail-qk1-f178.google.com with SMTP id af79cd13be357-891208f6185so224977385a.1 for ; Sat, 18 Oct 2025 10:46:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809561; x=1761414361; 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=H5WimfWZlEqiYHKzfmcAckTYkDvTe0+bpTYNTmk8aT4=; b=B4d5twMqq15Bm4EX95wI9H+g9Jr4ulZ0Z2Blp27d9tlkapDkfxPWxVvAX3MR5FcYD1 j1C7SIRD1af1Caj62Q0lteSNdf3CpvaN7soagf+2Rh6DfU1ehN+iYXDRlJM4NYLJoR/8 jKmLVTuarADNH/eQhdgR3DKmZ/bVA98jgdLCnCRjqJdeZ9ASlFozjb/Skv0W9xczvSUX 5tSIAmas2MIlcs0es82VfRqbFmPt2zDg2T4Z5u2urQBT2siO60YzSSZ1PaCqBdGpMcP/ pD7KQwBQHFgvXeXTpNVJX3x3fXFu5zj+ZVIKJHizeeg2I9b08xEwSIuUmKYSPa7s3u4V bCvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809561; x=1761414361; 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=H5WimfWZlEqiYHKzfmcAckTYkDvTe0+bpTYNTmk8aT4=; b=jYUsLZ5oFOseuA2z8bYfVx/gFHmI/cPzhHbF8q6hpjMBdHnI/09Nyg5FS02pGYWEZO vPMMfpAXWN2NwWdNwl2rmWsRjnOs1nadphCWHShU3GGHOjJRcZ5YjSlPof1502W1p+HG QW8rGzYRn8cwmMgZ80Vo8mSsOPB3CTkfJEUgoIVLizJEhPyKN1zlWHy9JsdFtdrqQS+v 5QRFMosCnCW6vAnMxJP1JJAU1cSA75EAJ1PDhuvL+6+VSFzUrbd9Nsrra2dSuaEoABtg TWDy+SD5ytiHD+ykazTUZH8C/KTStHaBFEI3x5LqAtZ66YSHGiTAMXUug1+tcOP6iP+W ooyg== X-Forwarded-Encrypted: i=1; AJvYcCVtIrUVUlIyXYRgZFc4jkupWVWwncPHd5izQJZpw4htzUbi+IpBZAln764SZnbZgjOAYPe5J8f3gY+DSW0=@vger.kernel.org X-Gm-Message-State: AOJu0Yzc8c+CZBwkYsBj8tJnaqm7+giP6+XX+vMb1DDVfZJZtZzq8a5e 6jWA7GEZFtJZ1ezjKKxMpLhngBv6ctkq4cYIHk62WGYdm2lMumDpeu7J X-Gm-Gg: ASbGncuQYTl/s52S68p1PoJcOO3/ytKQH9ZyDooFZ5CtdN1jxgbPTo8QizVjthmWDKa o8hHlEIwTejiUPB3HErTKuEfSMYceos2rK1PpCnDQgUQx2P/zV51IyzDcly2BR5aF6BVibM50PK 2Yemy1IxprVMzEoOlBdmVllIUrxEqFMkXd1WyosmJ+BTVBRJerq6nHT6udcCUEsiNU+CYkT8OjK gWpTjTGfODhB/srG2M5ZfIkyxpLz5qH8y7FX8p8d76w3gT0NhknEwE4Q2us2yEPmKPhpuzSm+OT 9IkElsaA7X9WSdDwJ7CSrQKujti4xbLsrBK7KuQyUNcrD2fZKCtJAVaZv8o/svMXELxzDPFJzPi GYUGNDuSjLJVbyPhmN/FLhxLrDHKStmLjxkl/7EoXeVEmpoEEba7/lVBvs8p7bMrv1HCDj/1LMk zvxpjQpxQe+w4k1kKsGLtEzyDeKWV8+0lNE1zMUqg2aprbCCYL1Sy5wTXFf4kB73UfVH1CkjwOD iBirPLAfuwyGItM+j/F0p08SMgmIQo1wdaSDE9kzogEnIAU4zZLYpMg/Vx7l2w= X-Google-Smtp-Source: AGHT+IH8lweP2XYB08E+inbzDnXw7d9uWVgrdDvTnlgrkRHMKVP2lag0JhfKwKbfvNE1zYcp4Zi2rA== X-Received: by 2002:a05:622a:15cd:b0:4e8:894e:1345 with SMTP id d75a77b69052e-4e89d07d9b1mr104925911cf.0.1760809560785; Sat, 18 Oct 2025 10:46:00 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.45.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:45:59 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:19 -0400 Subject: [PATCH v18 08/16] rust: pci: use `kernel::fmt` 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: <20251018-cstr-core-v18-8-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=918; i=tamird@gmail.com; h=from:subject:message-id; bh=03bsWp5q/RvNg/sXSrzNos1bBBR49+qyJdq4+m4Ha6w=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QH27Y5uAfTmrvKZIdGCHYL/oomYMJkFLfNEOLtlLtpxxDPHsRr1ISH3D/10dPkATw5kw42q12/O zIe1ETaFKVAY= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Reduce coupling to implementation details of the formatting machinery by avoiding direct use for `core`'s formatting traits and macros. This backslid in commit ed78a01887e2 ("rust: pci: provide access to PCI Class and Class-related items"). Acked-by: Danilo Krummrich Signed-off-by: Tamir Duberstein --- rust/kernel/pci/id.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/kernel/pci/id.rs b/rust/kernel/pci/id.rs index 7f2a7f57507f..5f5d59ff49fc 100644 --- a/rust/kernel/pci/id.rs +++ b/rust/kernel/pci/id.rs @@ -4,8 +4,7 @@ //! //! This module contains PCI class codes, Vendor IDs, and supporting types. =20 -use crate::{bindings, error::code::EINVAL, error::Error, prelude::*}; -use core::fmt; +use crate::{bindings, error::code::EINVAL, error::Error, fmt, prelude::*}; =20 /// PCI device class codes. /// --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) (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 D9BC72FB96D for ; Sat, 18 Oct 2025 17:46:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809568; cv=none; b=VS+fJvVRwXfD/IMMr65TZ7w9rUsKq7kAi0LTOgkUe1qak1p9mPc5GaCx2yWB/r6r61eg72h4xPU/6W/+o4/8pLbN9dZwhBbJ/lqre2TkeRkPFBFNqSmS0k67rYQAa+2sjCFRYkjB4AOXpsyCtaHNmPK2LVVaG44luF2y8iJeJYI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809568; c=relaxed/simple; bh=uLnXUd5iHMMEJTAMJKY0bsxZkX3e5rGAkuIO16n9SP8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=esUbmgpOeuUDlLOrFuLyspUnAG24w3FFSZqG7jpf/BZJxaCFcvyWeE4x32PgUASSF6wEDIlTspzN4qluzmuwUNzqAzm/0eqsuHi40rjl2V2HnX7/+E/EEQf5fBYToDukYH577XRgrQ9MlIU40eTv4/dq3BxLnxX/CFs+lAxWnKo= 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=kszrL3uT; arc=none smtp.client-ip=209.85.219.43 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="kszrL3uT" Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-78ed682e9d3so41505516d6.0 for ; Sat, 18 Oct 2025 10:46:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809564; x=1761414364; 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=Ycwx31K2mxLEujn4A81pZPUGOjv1ArmgOKcrq9XGsoU=; b=kszrL3uT2MycGYw/EJTSEoDBJOl51QsY1HRZBnoMS5rNQfrtHy8rFuVx4EYAQ3WWWb 8/px861NEGq6zOBuMYIL7mCT4C6REeyknaRu/Ti4jVIqDau0raZ1hTYmks3cd5IO3u8X W2nIO954gLVt5PRBOPOx2xOkJumsZj1V5WLUMkGjUTfGypfSSVdZjCliHNgwP7qj63lq PhWHrNSjPXBLKZ1sHMsTi/jkD1tMJZhdDehO9L2Y5H588zeEkEarA1jYQYfCkzdp1Vqf 8t59nYddG86FkXkY950HDvA7dQ0eIqrxhxw0B0DFVLxnjOkfsaQXLldBteNcXA5tJZdD ieJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809564; x=1761414364; 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=Ycwx31K2mxLEujn4A81pZPUGOjv1ArmgOKcrq9XGsoU=; b=XhKggPQ5NEUrB/JXkWILO7bMHU4za8hG3RgwT673gMxJi5peesH63i8h5PH1MrHsiO ubikQheW3PgiJTPRMi7DT5S1sAXaAjx0WW0Fp+F5MuMgNHoNbv4wmQfkxw8REjtQyubY jxGRbt5lD/bTtGD9RtCSalcgWbFGC+DwPIFvnnNitaGhiD2adfOIRmhcd2XHd12I6PDw HXPsEOXBvaqROC8y1N3ewy4n8wvXH0jaPwq4YyyurRK4r7Zf6rDssXkG+vKlEe4/PNhn wOrPUHqOS5Ce6xh4lUh4wnk5o7r8v5PAaJ60Ia6Cl9EySsKw4js0ez4WKYl5VXetRS31 6DzQ== X-Forwarded-Encrypted: i=1; AJvYcCWSHU0o7vvgVnzbM1fywsmwOjpjl4fbt87Q/IU72CHSE7CukpPXZMmMToZVpgm2eMUF5TLVYZZZG0YEQ70=@vger.kernel.org X-Gm-Message-State: AOJu0YzGD5Ow3tZ+lGlH3lAow7CGpgLGXg5g7d/VvDbj4nQ/9HrJWG4h BDaZ4GH8+Zddc2KLMV7oqMfYZjGvUWqARlZFruD6hrR/KppcdYYchJC9 X-Gm-Gg: ASbGncvGFSC59nBtqsN+EJJajVJ6ZzDb7Nrs6dVME3rIxjVQHIAaKxmRl33IUMbSVJT +BZuWB7rMwBtRHQjzDMY6OvSsAcHi7+Uz8ExYfAsWUp5QoN9L3HcuYvmiJMLcId1aS/vPxTXXKU EsjVa5mJnX2LhzOycJnYlDl3afeyDYJ6eFNE/TFW3TcGpcyTWg/WTf25dtACfK874I9z0uth2u3 +fyyLyeWsm9CEqwd+MXbJTNe2VP3On49TGjUOwEO63nW6lx1c9b1xC8O2q9pqC5rXBQLVAHE3vO 9jGLuyfK5czM8dtu7BZmj/besPRKYch7rkvkpIQ8yZ6XK1KgaAjvasusDeH2z+0SANdksf5Xgl2 8A/8fiVKER/wTxEz4XYIGSIYJnmtnwl1T+rS5IzuyYj2yI27C4uG962vBrn3IHd6AhAB4dumPXA Xqy+F9r9ni4/iLa7A/6+gTt9U3FKNnLlbI8HdpCAOXfXuhegP6StzHRse7ggZxTFRFTKK76peJk QXuHi9Bt/W1NLx4PGPdNtYiqpfov4dYECqrtOVB0YIOn6OX3GN4tczzb/+6hIA93fjoTuEB0w== X-Google-Smtp-Source: AGHT+IGG7z7f3MNU21/Rti4PmtrZca4GFxKfblibRIkboUBwmpGvzYHP42u9XCSh6vTqFJ+cvotYfQ== X-Received: by 2002:ac8:5910:0:b0:4e8:9596:ee77 with SMTP id d75a77b69052e-4e89d1eca83mr102709391cf.10.1760809563421; Sat, 18 Oct 2025 10:46:03 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.46.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:46:02 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:20 -0400 Subject: [PATCH v18 09/16] rust: remove spurious `use core::fmt::Debug` 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: <20251018-cstr-core-v18-9-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=668; i=tamird@gmail.com; h=from:subject:message-id; bh=uLnXUd5iHMMEJTAMJKY0bsxZkX3e5rGAkuIO16n9SP8=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QGXXqQt9RHGxpoBFZLlXeLUPAugoqd/q2N96Ig7iFhgm9rnqX6mshM+HDXmtIVBN7F9GI6CbJIb k7xYI3LBrrwQ= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc We want folks to use `kernel::fmt` but this is only used for `derive` so can be removed entirely. This backslid in commit ea60cea07d8c ("rust: add `Alignment` type"). Reviewed-by: Alice Ryhl Signed-off-by: Tamir Duberstein --- rust/kernel/ptr.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/kernel/ptr.rs b/rust/kernel/ptr.rs index 2e5e2a090480..e3893ed04049 100644 --- a/rust/kernel/ptr.rs +++ b/rust/kernel/ptr.rs @@ -2,7 +2,6 @@ =20 //! Types and functions to work with pointers and addresses. =20 -use core::fmt::Debug; use core::mem::align_of; use core::num::NonZero; =20 --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) (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 EAD872FC886 for ; Sat, 18 Oct 2025 17:46:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809569; cv=none; b=c1AU0pSvzWiNMKPT14vk7ZQkZ/SmwZuhQ/Gj1VUwIAkQX+d9dEOXpHS80VTosFnYcFZibH0Nk36OCR128m98f1ATY/cFBy8un5JpJlzCFCTkJ0FuyjS6Cy919qg0xHqkuXtq0d7d1IRux3CEQHmrNjOFT5z4y6XbFQ2y6Lv3xiE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809569; c=relaxed/simple; bh=W0kd+lIKrES9E6f3i/NvYS4ZToF7HAzoNGFG8gcpmao=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ausf3qt44AJRBiqBuaL95/pThBaEJNbtehJGXArzBIEi+c4V977a2uv5nD+TVbc0OBTNoYEhdqCfHUFTMZaOqEezYP3ATXZ7rPU4Wg0+o05BU6DVBAsKON/SF5nNxuB6xRVij7NeDX7x8UQ/ruGgZSM4+ZYnvMAfCPNbEGVoGkU= 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=RJUsxV4m; arc=none smtp.client-ip=209.85.222.174 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="RJUsxV4m" Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-88e525f912fso459759385a.1 for ; Sat, 18 Oct 2025 10:46:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809567; x=1761414367; 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=sKB2rh6EiQ7umDMD4HQ+ERdIpZM9C4N3KJVnDXEYlQU=; b=RJUsxV4mLUwfi6sZRhT1okEl38/H3LXxoSzmGRUT8wFxkDIqT6KLaOpXzDvKaFhKki O2GIKqKwV3f4hEubO2CcSR+6MfxlGoaecVmHqLXPifSwQFexHUsxFxjjH7YwlKyEOqqL q6zqZ85exfd3JY9hjeLRew1p9yCG7Z4vZQgBhRZi0RL6eLvGo11lHtBfPOour/xqaHgM wLs4NcTvki4J7cOMmt+guqWZQkVJuSaupB7fqaIkjq2E1aF7ylBaVAMoUvBtbVKeV0VP S8XkX0pta1l4dnNQkpid7fvULY07Fyr5PyHy78oZWxTBnWYmQwUhaMPeH/xQt3FYY217 kMVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809567; x=1761414367; 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=sKB2rh6EiQ7umDMD4HQ+ERdIpZM9C4N3KJVnDXEYlQU=; b=kVguOW98UqUIOfWdV+r/Vv65TISVNo7Diwbl7LUSxP3vH5pQjPQM2/54J4HwMqsj+V m8Ksq0LFYh7eVponTJm8Uku/39w79tzGqdXNR5ZkLskLsUv2sYdM/GgjxzbZkG2xyj+5 hzl/4tZWIvtur3/ycghRwjNW8m9HrZX6vmWUQ8ReYXn0s8+gzEPiIDOh74xEYlADGmKT CITUCTeU4xXFSddUbo1kjR0PPwvFBukugYlVo3x32uhULGTC+yOo/ufCdMeRVd8t2E7v /wq3m4w4YzHoG3yvNaFuAkxYl/XIh96WN9lU0tlZHwCVgoWA7I6TAvrYVGdqbJCTtEe3 vWrg== X-Forwarded-Encrypted: i=1; AJvYcCV/paGbT+55sEZjBmsokZQLVB+NcZ9AO1ZfiHqJkf5WNw01X4x+3m1TciMvIeSdHtvmUQmNFkMu9+34yB4=@vger.kernel.org X-Gm-Message-State: AOJu0YzkBUxEdqhHR3kJo7hMDOUzAAggfOvLXrJD9iNsSsKh2BVj8lO4 mnsnI/y7Qa0kgThc/hQ/0vibeLZQg4DF6DyhmFQURVNMH06WwJJd0VUf X-Gm-Gg: ASbGncvOgpyEQcqMHvRCTZl/lW2MjzYwlx/YWwZjsjWuwWhBmztoR3ggh2rm3kUyzGK /f5L60b8ZJwSkdgbpyVpxyGUbS0vZj6QT8MeMWbRFZhzKgFvC8ODZeRwV7mz6Ye3kCR9iapXMnh Y6MgMqpu7yuRA0qlHEQwW+waGZ6HDA7lSKtC2JeZSDHdrgyEXwZIOzWPFXJmyt1qCqewWRMhmwl FBiYOqcQW+A+VtXSTp9A2zb6TXTC7+RPGFg+C8Xs2m2VKFmQTF2vzV2XthbH6fyDQsU6k7JzYnl zIxxFOjKRA/3vHvS0+/phljBjHASgIm0mtJi1k9gOsS+t1q9PyexTS4lb14Pf//ErGssarJREO4 kUEAxGldH/bue3WIaNHzn+TTQVi2UXH1zFfRBjSKoMQANoY93shyySabis+KMxP3PuC+JzEVSRp Ujpajyeyo9xdz2Y1fUM0T764lv9nrUQ7l5jqAJbdguby3Yaal+UqSqPSBnIYvGKpl6L6H30AncV 1KBhth1a5Yj0xZo56yCAW7469W7QI8P74gmSM0Ttwxu+pE3S/Y6875E0+rdo4k= X-Google-Smtp-Source: AGHT+IEi+T9/sjZ3+qvtuzBCO8Ryg37IjVdgJ7+/CPsrCZub5GHtmSQZv61we6wEcfm1jaszdnCtzA== X-Received: by 2002:ac8:5908:0:b0:4e8:8e75:1875 with SMTP id d75a77b69052e-4e89d283973mr96538081cf.23.1760809566774; Sat, 18 Oct 2025 10:46:06 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.46.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:46:06 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:21 -0400 Subject: [PATCH v18 10/16] rust: opp: use `CStr::as_char_ptr` 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: <20251018-cstr-core-v18-10-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=1431; i=tamird@gmail.com; h=from:subject:message-id; bh=W0kd+lIKrES9E6f3i/NvYS4ZToF7HAzoNGFG8gcpmao=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QEAqWyd54iXxQf1W7agZsuXCPqrg/zEyTWXe5pjUlem4d91+xriJLoSF0e5Up8mkLDTG1Mc0sF9 CNvCQrLokrQ8= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Replace the use of `as_ptr` which works through `::deref()` in preparation for replacing `kernel::str::CStr` with `core::ffi::CStr` as the latter does not implement `Deref`. Signed-off-by: Tamir Duberstein Acked-by: Viresh Kumar --- rust/kernel/opp.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/kernel/opp.rs b/rust/kernel/opp.rs index 2c763fa9276d..9d6c58178a6f 100644 --- a/rust/kernel/opp.rs +++ b/rust/kernel/opp.rs @@ -13,7 +13,7 @@ cpumask::{Cpumask, CpumaskVar}, device::Device, error::{code::*, from_err_ptr, from_result, to_result, Result, VTABLE_= DEFAULT_ERROR}, - ffi::c_ulong, + ffi::{c_char, c_ulong}, prelude::*, str::CString, sync::aref::{ARef, AlwaysRefCounted}, @@ -88,12 +88,12 @@ fn drop(&mut self) { use macros::vtable; =20 /// Creates a null-terminated slice of pointers to [`Cstring`]s. -fn to_c_str_array(names: &[CString]) -> Result> { +fn to_c_str_array(names: &[CString]) -> Result> { // Allocated a null-terminated vector of pointers. let mut list =3D KVec::with_capacity(names.len() + 1, GFP_KERNEL)?; =20 for name in names.iter() { - list.push(name.as_ptr().cast(), GFP_KERNEL)?; + list.push(name.as_char_ptr(), GFP_KERNEL)?; } =20 list.push(ptr::null(), GFP_KERNEL)?; --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) (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 6876D3009E3 for ; Sat, 18 Oct 2025 17:46:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809575; cv=none; b=YFQb7s0Kzl2P9EzHio8BhvAlm/kfizC3DtspnGJiqXSgqRI0kdZL9dAzNTkthBUalgGXE+BBAbBhSGTGI8P7EVQbGKjwlDW05I8oC/YAH92OqYtCeAz+OfJIj2MLVgCnn98qBAi5tgHiIXx/ZPBjdZ7B5LK5MoHuMcY5T7OJ7SE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760809575; c=relaxed/simple; bh=tThvb3NWkM3msr/ABoCM1JnbhTAqdV/nFrTXflsMRkU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YfycNJiU4RfdbDIuiz6aaLfu8J9f+d1gRIcBXF2BZQB5vlwcn5FfJW5R1IQoNzwcZQ1U9tSb9zw6WAS4UIa04O3TTdhALkb0F6ocvlybVv3a2+h+2Pue4K3V5V9P5wxnr+SckXaC+8OeW74l39neDwXZ3OggV2NT2zFTJZ9Z0dw= 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=dykkDPOs; arc=none smtp.client-ip=209.85.219.48 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="dykkDPOs" Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-87c0ea50881so64018006d6.2 for ; Sat, 18 Oct 2025 10:46:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760809571; x=1761414371; 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=9GrnMpI60PzKwG6+cJ/Jxamo/bOJKX+J9SwLV1KKddM=; b=dykkDPOsKqZYhPS9KYiY6lWr3Z0ZhMJn/5+4vp0BTSy949tm1GzCG4Gs4d8CbqDTmw Zx9kfdyOJd66v2uOCSmdehWOBQ4WSMbd5WIFO8M1O479tSt1QJUZY1qw/fF0UKUhRAS3 zj3b3my1775SIQRRNobdfv1RmuM/sAX2cO47BYAxiHgZqMgkR1Yl0Tf8O1tPo/iEzk/D Y3mEEmCKxS1m1nhBp0Ld9zE9iAUPtUj5NeyNtdM1ZEykp8SvaEWaT2lbMZwn5gW69N6D JZg/xKyDKNhr/pqwSsuSke8N9Seabin4wwyC1SInZRrYneH8EaOdqkLCPvySu+hPhhXz mYHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760809571; x=1761414371; 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=9GrnMpI60PzKwG6+cJ/Jxamo/bOJKX+J9SwLV1KKddM=; b=cq0zJbuB4Hj6/avlAqIbsqWc0NTY7lrRjHyvT9y6zrEml0+4vEtbnKmpTEHRR4SjhO cqBsqZv0Y3lXY3UPYItnPgVbaNxuN0kaaZJtIyGgR65I06zWb/aVNJLsTFCYOykfpp5a NwWhuw4c6SB3af1IkGnNwuliCOCtiN3g2pcmT80g35rYYDxm4GDpx65uoKVmeaspvXxh wNemCUyy0CPs8SKHmVmgJnsLob7GTEUVNMxuNrE//qCIa5JR6nrkZnnyFEddIZF0pzDJ bv2Op/pliqUQdxIwSD2hT87AGia2i/EEaPCyXQzdX67CjoI7zQVvd3bJVf1NgY00OryA Fglw== X-Forwarded-Encrypted: i=1; AJvYcCVCJmmi2IuUrKLZXDhJKKHEw1dmC+3gmPVjovvqYaleIdmuLBKoJ7HUwfTRz6CWm3AmoZiYTdgFbb0nwAM=@vger.kernel.org X-Gm-Message-State: AOJu0YyZYmV9Wm/sVjI6Y4dtsD3O/0ZX0WOPCmyN/svn8tamZ4lciH/N ENZYB3O6fhSwIpH8f+KsreeNaSk9w/vSMyND9SEv6HuifNSQqOxShLAZ X-Gm-Gg: ASbGncsBO+U4djXHFVJrNoj7S/dPC8PmD3kSRyA85AgTUvnALYe4JJLw19dFz7QQRhb FUiL+QAU8B2N98yY7lGALTqPGwhC70PVDiHZ1shqBc3NUx/Eh3y2XMMWyrhQUsjGWBL+ngjtF7Z /jjt4rIKxd0oHBV96UwE2Jey3SQI7PvVi9RjaA3zuZzvdi3nBdnb5KvSLj8qso7feaMC8McnAXI emRaCGcSZ6wkEjYlJ8wZbCnOW3oz6gWuyXv6dSrJ034B9NMcN6Jxu18urxAIFQa4xq7RlT32hOV w5OWIRndr/ADT3Yy7ZE+P86uDr+dPmVHIC5hGp0QUZc49UMXS9625XK0e3+DLSoIh4UvAPllrHS Fdos+Mk79eVL6dnJLx4gOzV/dSXpmTgACecfqeqy1xqITQphnSwEhT9jihj9Cmy7S5iZt3lvZev Wocptn1LY3sXCUlipJEHZHwX/DF1/nCTjHJRs6uPEZpXMWEoJ2s9m6LxSuHQJPi09L/JYNoMT55 ECZ0oxilC29b/4jtK4odoftWq1aKpcXRk/tuMV4NRLhmMXHwKxJbBgutOcde2E= X-Google-Smtp-Source: AGHT+IGZpCN4j9tmhaYbhdNdOMD/u+TXfP+iW99iy32Lbo2Vps7+kQzJb2YNFmaLWQVUUZPeDTJH+g== X-Received: by 2002:ac8:7f0b:0:b0:4d4:4a2e:531a with SMTP id d75a77b69052e-4e89d29ad47mr112932081cf.30.1760809571213; Sat, 18 Oct 2025 10:46:11 -0700 (PDT) Received: from 117.1.168.192.in-addr.arpa ([2600:4808:6353:5c00:1948:1052:f1e9:e23a]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab114132sm20445161cf.40.2025.10.18.10.46.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Oct 2025 10:46:09 -0700 (PDT) From: Tamir Duberstein Date: Sat, 18 Oct 2025 13:45:22 -0400 Subject: [PATCH v18 11/16] rust: opp: fix broken rustdoc link 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: <20251018-cstr-core-v18-11-ef3d02760804@gmail.com> References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> To: 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 , Greg Kroah-Hartman , "Rafael J. Wysocki" , Luis Chamberlain , Russ Weight , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Christian Brauner , Alexander Viro , Jan Kara , =?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Jens Axboe , Lorenzo Stoakes , Vlastimil Babka , "Liam R. Howlett" , Uladzislau Rezki , Bjorn Helgaas , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Viresh Kumar , Nishanth Menon , Stephen Boyd , Breno Leitao , Liam Girdwood , Mark Brown , Michael Turquette , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, Tamir Duberstein X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openssh-sha256; t=1760809527; l=760; i=tamird@gmail.com; h=from:subject:message-id; bh=tThvb3NWkM3msr/ABoCM1JnbhTAqdV/nFrTXflsMRkU=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgtYz36g7iDMSkY5K7Ab51ksGX7hJgs MRt+XVZTrIzMVIAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QBU9F3MfxxHsWXZNGSoYZmn2+0JKsH4AOCWoX3y57VzrfMaGPAHTAxZv38DFnb0J2kyhK3EDxZd 2sBHoMwBFnAM= X-Developer-Key: i=tamird@gmail.com; a=openssh; fpr=SHA256:264rPmnnrb+ERkS7DDS3tuwqcJss/zevJRzoylqMsbc Correct the spelling of "CString" to make the link work. Signed-off-by: Tamir Duberstein Acked-by: Viresh Kumar --- rust/kernel/opp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/kernel/opp.rs b/rust/kernel/opp.rs index 9d6c58178a6f..523a333553bd 100644 --- a/rust/kernel/opp.rs +++ b/rust/kernel/opp.rs @@ -87,7 +87,7 @@ fn drop(&mut self) { =20 use macros::vtable; =20 -/// Creates a null-terminated slice of pointers to [`Cstring`]s. +/// Creates a null-terminated slice of pointers to [`CString`]s. fn to_c_str_array(names: &[CString]) -> Result> { // Allocated a null-terminated vector of pointers. let mut list =3D KVec::with_capacity(names.len() + 1, GFP_KERNEL)?; --=20 2.51.1 From nobody Sat Feb 7 14:16:10 2026 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) (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 6CC6D258ECA for ; Sat, 18 Oct 2025 18:03:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810591; cv=none; b=TYuHyyfjNtFSkhLFwGgueaeZ5xna89HhNCoF7KIBX2shFnn2r+m+hJLQiFQGAeY9ZKF/51xIw1cXvYJ1q769NrtLZgHYUYqAfFjFah3/kublKP4pA2ds5qCvSt2mkWxOhbhFCgnvjb0bkM/PjpkmafZcCabxHN5v96SD7kvEFxM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810591; c=relaxed/simple; bh=0GzwcDEeRifVYWOU1Ju17zqBLy5F9ZnkEqm/6SUKvKQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=F7ya5JXv8iWwgS93xJW1fzlNWmi3fGfZWtZQWbgdR7LcMYvu8bV1VzmSHh0jffArdbGqouxu/bIJGz4vm1RcYGfnUAwZoSuT3GpNq9A3yXfqSHHNno+674lFOSC7//qKH3WUCfmrLJsmzWQLUNfpp6cjxijF1eBaICBZi+zMdPQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=hxDIUqo6; arc=none smtp.client-ip=209.85.128.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="hxDIUqo6" Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-4710c04a403so29582205e9.3 for ; Sat, 18 Oct 2025 11:03:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1760810588; x=1761415388; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=3Jw3+rOqAmz9lI4+2vszjAxIVE8PlKgnkOGLhqwHbOo=; b=hxDIUqo6eoQQzTk/UK2gwlX//nfbdzaTwNxS/XcLvWTFXKz5p8Pib51uSza/iK0TR8 E7X08qcyzgzhVWcnKqAcu8Ntg4MaM66VYBAUC/zpzCTch5BnhEDIjTZ4q2M+Ath2bwkf keKUxSQwJixk4tDpFD1p33qi9gIt4SniDidLU+08qSE3TxoKzOCIrt6m/dnTz8zCvc7N oZbivVvtCBzIdIvnPZzer6FR5aEICGsb08wSrGdARgtbrsoJKZgu0UA8TPzWXsaCXZgK NRqMU7lsymz2BK2cZ/baMWhs4noidaJxecq56qoMu+p1Tn9QwS2IRTTZ4V12VmLAsjgq aYrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760810588; x=1761415388; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3Jw3+rOqAmz9lI4+2vszjAxIVE8PlKgnkOGLhqwHbOo=; b=CIC5xYuVdfOzSrIo2tf0K6ga4Gks+52WY/7veWLMaxfHDtFnAgTE8OlQYQ7UETiCjI f3eorwOVKl0QMj4INIFLcZ/B9DI4JmRSkzvN0j7hI1fsepZ7nd9rD8CUuHXuVzfRglua 7C9RQbZlXJbVqbcIej9Yxw8Jr6HQu0w7FEOSgW0cmuWambby2LgFCbyeIGNLoerNIXBn vQ5wMrLGwjQdXdtLn5yMO0LxWwKueYVfxubXEIRREjAuaDQci983V+tZl/A0RViGHmvK aWMYWAUaJwb+r3pOi4Mi+cXvuSS/3ndssGoIUyOr+gqWlrmaitbkerh4xSePzrfQmfm2 0cpA== X-Forwarded-Encrypted: i=1; AJvYcCXFIZ4ofYMgu4/al4ECseosLwMz14PaqFHHrs0dMM3CAP+QaUNRdagqU2rqx2IsM/cQCpnUE0IQDooVN90=@vger.kernel.org X-Gm-Message-State: AOJu0YxfaXJk9L2R7Khgg0p9XwrKvgT2mcrPI1yhgmbyv+95BnqcgTi/ PoPdtVcGD08yZYENgK6Q6wNHSlkyqF7u5+MeshVVvbFHCqoz3Eyle1zZHGdTtm/H/99vCs9EPLF MpIoM1tk5e1qUISD8nQ== X-Google-Smtp-Source: AGHT+IEDBiBL9j3PrKHEoPMUCzoRBlvkx4ZL7AxoxVM1NpYJWMzoUQv31Vq5zUARBonVeR76HGoFc6I/2XbrkI8= X-Received: from wmbh26.prod.google.com ([2002:a05:600c:a11a:b0:46e:6a75:2910]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:4715:b0:45b:9a46:69e9 with SMTP id 5b1f17b1804b1-4711791c8c3mr58877225e9.31.1760810587581; Sat, 18 Oct 2025 11:03:07 -0700 (PDT) Date: Sat, 18 Oct 2025 18:03:03 +0000 In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> X-Mailer: git-send-email 2.51.0.915.g61a8936c21-goog Message-ID: <20251018180303.3615403-1-aliceryhl@google.com> Subject: [PATCH v18 12/16] rust: configfs: use `CStr::as_char_ptr` From: Alice Ryhl To: tamird@gmail.com Cc: Liam.Howlett@oracle.com, a.hindborg@kernel.org, airlied@gmail.com, alex.gaynor@gmail.com, aliceryhl@google.com, arve@android.com, axboe@kernel.dk, bhelgaas@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, broonie@kernel.org, cmllamas@google.com, dakr@kernel.org, dri-devel@lists.freedesktop.org, gary@garyguo.net, gregkh@linuxfoundation.org, jack@suse.cz, joelagnelf@nvidia.com, justinstitt@google.com, kwilczynski@kernel.org, leitao@debian.org, lgirdwood@gmail.com, linux-block@vger.kernel.org, linux-clk@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, llvm@lists.linux.dev, longman@redhat.com, lorenzo.stoakes@oracle.com, lossin@kernel.org, maco@android.com, mcgrof@kernel.org, mingo@redhat.com, mmaurer@google.com, morbo@google.com, mturquette@baylibre.com, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, nm@ti.com, ojeda@kernel.org, peterz@infradead.org, rafael@kernel.org, russ.weight@linux.dev, rust-for-linux@vger.kernel.org, sboyd@kernel.org, simona@ffwll.ch, surenb@google.com, tkjos@android.com, tmgross@umich.edu, urezki@gmail.com, vbabka@suse.cz, vireshk@kernel.org, viro@zeniv.linux.org.uk, will@kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tamir Duberstein Replace the use of `as_ptr` which works through `::deref()` in preparation for replacing `kernel::str::CStr` with `core::ffi::CStr` as the latter does not implement `Deref`. Signed-off-by: Tamir Duberstein Signed-off-by: Alice Ryhl --- rust/kernel/configfs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs index 10f1547ca9f1..466fb7f40762 100644 --- a/rust/kernel/configfs.rs +++ b/rust/kernel/configfs.rs @@ -157,7 +157,7 @@ pub fn new( unsafe { bindings::config_group_init_type_name( &mut (*place.get()).su_group, - name.as_ptr(), + name.as_char_ptr(), item_type.as_ptr(), ) }; --=20 2.51.0.915.g61a8936c21-goog From nobody Sat Feb 7 14:16:10 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 928F5264F99 for ; Sat, 18 Oct 2025 18:03:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810599; cv=none; b=Uz+4silwD2uDACEaYEs/MIoVLfnxaG6nVzh7Ny4xSAyzb32sS0xhdG8ElTLQQaC07J/WYjZllY20D3Zc2GM0an/s/UClwadroilowL2syxUWNiru46J9tQ/49ktnyLUcKV1nclQFSq5P1s5VQhWuv5IVZr9IYv2GGmKLAGu84RM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810599; c=relaxed/simple; bh=hMEnshIBBCwKDA9va+C+vgTZ7D8UBppyjlBh7zEwkCg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=mVhlvKzlHtiSmEqrmF2rJ05aCoOK8Nq9L8uTekiPJ003uiyDwbL6Msi5mctQ7VzjaVHvXO4VE7fYKoSYZvAPlTfSC2nGZRm/jJ8S7uVohAnqqRVf20zgJarNMvkYF4PbM3vExTr0Wh21Ouz6aow/bFBSdyeJE2NlmXn8Zzyuwk0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=rAH46SFk; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="rAH46SFk" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-47113538d8cso17692165e9.1 for ; Sat, 18 Oct 2025 11:03:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1760810595; x=1761415395; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=P+Xp99Syf6solx7Qtcc9CHjBfbP4dER1f+PiKli4U2c=; b=rAH46SFknU6g/O+c9FsM0Mynh5Na/VXbCoy0kaqhgmol+EcG+2U5WNgvTbpujC1pdn c135DTKP7q9wPejRxg9bkmkFs3aRlL54p4hOFLGmjUg07Hq4TU4wRgfPFJYRvekZPgrT T4my87GpFOArojEb1Pa9Dnbvj0Hrz+JnTEjDvYo7ojwSuhcTvPEt+fp3ypiUcdokhQMV gn+1evR8OlBXVQG2oA8xg7lr8JnjpzWDiIga1rLJQW6FDO658c3lQafRxG6M/wsb916J RK/SQWcLcaOa6+qHfY0ncZ36onzFoSDspShOjIcHyvqBwsGMhB+bIFdS03TXtou+2jZ9 S+Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760810595; x=1761415395; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=P+Xp99Syf6solx7Qtcc9CHjBfbP4dER1f+PiKli4U2c=; b=mGZeVPA1AnKsX0bv0dnJgV4w8HHoxtS9/rTnaSWYhghw/AbqYLBHAT/aMJP2Irr2b3 94aQwjodtuJQjz9rPslV5NjA/hedETGIYMxAIpmHpxGcsazoC/R7yEXEyLwzKF08Ucbn 1hdq3MCrJG2DeYZB7TxGiTHFc7j6Dzyz7wtGiLf5+UBam6m4oOMp8LWdGoEMTxaVk9TN +iv+Iv0ZcG9BguVrLIvaZPTLHFxOQUV2QwDiTlytZmvN5sWdrKkoEZDqv9aboXY2KMYz aC4C+6HtkoCtm/AdW94v3lsa/2ur/dzTubK72xCsJ/x7rG0VZD/lNDyMkkxyqTYaVGpo C+EQ== X-Forwarded-Encrypted: i=1; AJvYcCVn8zeR0XjtJHue4yr7cMDRPSIMMHJch15qXPiIkCMI3CDF76IqEd6Yd22PD4+0IXlIa5bt9CNNYWph8Mg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4pE/Chyx/H1a8P0GFF+WYwioQZN8UREPJ5Mjhx4Ns6nANNKke corTIbexUYMsJoANKtLyIQYWZpL6xwmibr3GO2jwMwBCeU8v/w+6SI4ehZ+Hm1Wmdwq0FodnxCw knVk3df8nTWBHdl/8Dg== X-Google-Smtp-Source: AGHT+IFD1cfJ8UvE+arlsN4Q/pztwM830HHKQSYiiR0oQA7gs4M/kyYn5nx3HAt5EUs2SUtbpxbRKJSK1nrxs4c= X-Received: from wmbz7.prod.google.com ([2002:a05:600c:c087:b0:46f:aa50:d700]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:474a:b0:46f:b42e:e39c with SMTP id 5b1f17b1804b1-4711794902dmr54802325e9.41.1760810594858; Sat, 18 Oct 2025 11:03:14 -0700 (PDT) Date: Sat, 18 Oct 2025 18:03:12 +0000 In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> X-Mailer: git-send-email 2.51.0.915.g61a8936c21-goog Message-ID: <20251018180313.3615630-1-aliceryhl@google.com> Subject: [PATCH v18 13/16] rust: regulator: use `CStr::as_char_ptr` From: Alice Ryhl To: tamird@gmail.com Cc: Liam.Howlett@oracle.com, a.hindborg@kernel.org, airlied@gmail.com, alex.gaynor@gmail.com, aliceryhl@google.com, arve@android.com, axboe@kernel.dk, bhelgaas@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, broonie@kernel.org, cmllamas@google.com, dakr@kernel.org, dri-devel@lists.freedesktop.org, gary@garyguo.net, gregkh@linuxfoundation.org, jack@suse.cz, joelagnelf@nvidia.com, justinstitt@google.com, kwilczynski@kernel.org, leitao@debian.org, lgirdwood@gmail.com, linux-block@vger.kernel.org, linux-clk@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, llvm@lists.linux.dev, longman@redhat.com, lorenzo.stoakes@oracle.com, lossin@kernel.org, maco@android.com, mcgrof@kernel.org, mingo@redhat.com, mmaurer@google.com, morbo@google.com, mturquette@baylibre.com, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, nm@ti.com, ojeda@kernel.org, peterz@infradead.org, rafael@kernel.org, russ.weight@linux.dev, rust-for-linux@vger.kernel.org, sboyd@kernel.org, simona@ffwll.ch, surenb@google.com, tkjos@android.com, tmgross@umich.edu, urezki@gmail.com, vbabka@suse.cz, vireshk@kernel.org, viro@zeniv.linux.org.uk, will@kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tamir Duberstein Replace the use of `as_ptr` which works through `::deref()` in preparation for replacing `kernel::str::CStr` with `core::ffi::CStr` as the latter does not implement `Deref`. Signed-off-by: Tamir Duberstein Signed-off-by: Alice Ryhl --- rust/kernel/regulator.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rust/kernel/regulator.rs b/rust/kernel/regulator.rs index b55a201e5029..65a4eb096cae 100644 --- a/rust/kernel/regulator.rs +++ b/rust/kernel/regulator.rs @@ -84,7 +84,7 @@ pub struct Error { pub fn devm_enable(dev: &Device, name: &CStr) -> Result { // SAFETY: `dev` is a valid and bound device, while `name` is a valid C // string. - to_result(unsafe { bindings::devm_regulator_get_enable(dev.as_raw(), n= ame.as_ptr()) }) + to_result(unsafe { bindings::devm_regulator_get_enable(dev.as_raw(), n= ame.as_char_ptr()) }) } =20 /// Same as [`devm_enable`], but calls `devm_regulator_get_enable_optional` @@ -102,7 +102,9 @@ pub fn devm_enable(dev: &Device, name: &CStr) ->= Result { pub fn devm_enable_optional(dev: &Device, name: &CStr) -> Result { // SAFETY: `dev` is a valid and bound device, while `name` is a valid C // string. - to_result(unsafe { bindings::devm_regulator_get_enable_optional(dev.as= _raw(), name.as_ptr()) }) + to_result(unsafe { + bindings::devm_regulator_get_enable_optional(dev.as_raw(), name.as= _char_ptr()) + }) } =20 /// A `struct regulator` abstraction. @@ -268,7 +270,8 @@ pub fn get_voltage(&self) -> Result { fn get_internal(dev: &Device, name: &CStr) -> Result> { // SAFETY: It is safe to call `regulator_get()`, on a device point= er // received from the C code. - let inner =3D from_err_ptr(unsafe { bindings::regulator_get(dev.as= _raw(), name.as_ptr()) })?; + let inner =3D + from_err_ptr(unsafe { bindings::regulator_get(dev.as_raw(), na= me.as_char_ptr()) })?; =20 // SAFETY: We can safely trust `inner` to be a pointer to a valid // regulator if `ERR_PTR` was not returned. --=20 2.51.0.915.g61a8936c21-goog From nobody Sat Feb 7 14:16:10 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 0416527467B for ; Sat, 18 Oct 2025 18:03:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810605; cv=none; b=QDVza1foijxydzU+FMrq6zXbhWk2YJHR7ZZhi5bLVMuy3gt8YGeR4MF/PKuHERt8fMifbZ1Gb6YHUCx3u8P2tyqogHPj+GKLGQ86nukV5C0WCAbuYbzaofwzwKBKYvmjgtEUYRPL8CcjbZClrHpTIl1yK1wpgc0m0Ecq0z80XaU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810605; c=relaxed/simple; bh=JRHxs/B/lllx/mRYTbX4X0zoBVdGGTRzzB4qSksz3BQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Vy9HQ4udHwz6n2bFhSQheEKN+zfPRsbF/b5XnYflCGficL9sfxwbA3xu5i6xsBNzN323nNMSCVe6kRgkqqApkEAqYH8Wd3g5jPtVOWqEDTsrYNvnhwUdPrCo/Q5DQpIVXaFRgcmqc3wZZv8qiAvcDYa18jRBHNMSD8y9oCRT8fk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=dCdE0Ojt; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="dCdE0Ojt" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-470fd59d325so15421725e9.0 for ; Sat, 18 Oct 2025 11:03:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1760810601; x=1761415401; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=sRx+IA31rk7VSUz5v3RyOo4nJpXSH+QxySZDi0dx43E=; b=dCdE0Ojtp97T5z8E+h35C6VvFcW7GEmDKFlzGtzHHeTO4CpUTYvuzFBRMZngydoQEM kkRRH+z1BMRh2i+GVu3xud/cewc0qPlupQACtcV5zolUTgvQgAxIdYFcnCHB9Q4TrDv8 Ba25lHINRwsGOxjhqlkJ16VRXvWQaNfHlR0xwWVeG3K6p7tB/29fEpY1qCHNaYJPMV1a U2xlB3ZR9fBfDpFmM7pUAQLAlmoe/oeqv0q5U0fl736quAWUCsFZipG4cHeMCI6m0uIg 6iKiF63M8KtoPW2sejkpXljPDgIr6FNv+jOSi3hBzCjNnftEWCqa8x0c6t55zMPznTsF Cpqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760810601; x=1761415401; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sRx+IA31rk7VSUz5v3RyOo4nJpXSH+QxySZDi0dx43E=; b=JDEzMFllnxQIK1Oq2urkJLDBueCa3ySBRyLmF9CdjRBAAMm2+ASQamTWCqnLfI3Deb 1j9YqfqnFSMmS1+1yVHlX7/MNjpPieRn1ZGA+MzEEN9ObtK9myoT1qs7BXO8GM6ikZvh hZCtLI/ztIPNnluIxB2WaapklGRwwLxlDNDwJOuGncvQY+9Z4LxsR+8WhiDLEIOGn2A5 0TmmMfdmUlj/xXzrehEwcZih6OHp6kxhJHKtaKVPSXCKt02oBgjQ40SBkHrEeXvbdHyQ +0KHXF1IBKCzCES6hiaRiRqzUayL1Gh+B7a3ZYw9fs4AxTdqzRpgj1IE7+nL3eehZJKE TI1g== X-Forwarded-Encrypted: i=1; AJvYcCX7EXGDzhzUXUo9pTRcFSsyIwqB76T10ggs8IdW+IANIfLal0o2SbzIqmdFfxckX07sCeSt39CqL9UspQ8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1QOMgs9pWJOniyIa/HYGX0GjFSE08kBXqB6Fpu7SXsUW2SWer w8zwBs7t3JM6LEX66vM3YRKGv0CyF9DVOlrZ7X0qMfJ0lbJ9lE0YmqdG/Ea6Hbg55TFxFOhSwb5 hkMCMsVEB8POuFvp/vQ== X-Google-Smtp-Source: AGHT+IF6AVT5n9fyZmX8HKRXXzv3logzsSjOnhKpBAjpd1CKVhXkGu1U0u6LIuqBRDGiqbuatyc4kakbkHTbQVE= X-Received: from wmna7.prod.google.com ([2002:a05:600c:687:b0:46f:b153:bfb7]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:5029:b0:46f:b32e:4af3 with SMTP id 5b1f17b1804b1-471178784efmr48534695e9.1.1760810601266; Sat, 18 Oct 2025 11:03:21 -0700 (PDT) Date: Sat, 18 Oct 2025 18:03:19 +0000 In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> X-Mailer: git-send-email 2.51.0.915.g61a8936c21-goog Message-ID: <20251018180319.3615829-1-aliceryhl@google.com> Subject: [PATCH v18 14/16] rust: clk: use `CStr::as_char_ptr` From: Alice Ryhl To: tamird@gmail.com Cc: Liam.Howlett@oracle.com, a.hindborg@kernel.org, airlied@gmail.com, alex.gaynor@gmail.com, aliceryhl@google.com, arve@android.com, axboe@kernel.dk, bhelgaas@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, broonie@kernel.org, cmllamas@google.com, dakr@kernel.org, dri-devel@lists.freedesktop.org, gary@garyguo.net, gregkh@linuxfoundation.org, jack@suse.cz, joelagnelf@nvidia.com, justinstitt@google.com, kwilczynski@kernel.org, leitao@debian.org, lgirdwood@gmail.com, linux-block@vger.kernel.org, linux-clk@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, llvm@lists.linux.dev, longman@redhat.com, lorenzo.stoakes@oracle.com, lossin@kernel.org, maco@android.com, mcgrof@kernel.org, mingo@redhat.com, mmaurer@google.com, morbo@google.com, mturquette@baylibre.com, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, nm@ti.com, ojeda@kernel.org, peterz@infradead.org, rafael@kernel.org, russ.weight@linux.dev, rust-for-linux@vger.kernel.org, sboyd@kernel.org, simona@ffwll.ch, surenb@google.com, tkjos@android.com, tmgross@umich.edu, urezki@gmail.com, vbabka@suse.cz, vireshk@kernel.org, viro@zeniv.linux.org.uk, will@kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tamir Duberstein Replace the use of `as_ptr` which works through `::deref()` in preparation for replacing `kernel::str::CStr` with `core::ffi::CStr` as the latter does not implement `Deref`. Signed-off-by: Tamir Duberstein Signed-off-by: Alice Ryhl --- rust/kernel/clk.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/kernel/clk.rs b/rust/kernel/clk.rs index 1e6c8c42fb3a..c1cfaeaa36a2 100644 --- a/rust/kernel/clk.rs +++ b/rust/kernel/clk.rs @@ -136,7 +136,7 @@ impl Clk { /// /// [`clk_get`]: https://docs.kernel.org/core-api/kernel-api.html#= c.clk_get pub fn get(dev: &Device, name: Option<&CStr>) -> Result { - let con_id =3D name.map_or(ptr::null(), |n| n.as_ptr()); + let con_id =3D name.map_or(ptr::null(), |n| n.as_char_ptr()); =20 // SAFETY: It is safe to call [`clk_get`] for a valid device p= ointer. // @@ -304,7 +304,7 @@ impl OptionalClk { /// [`clk_get_optional`]: /// https://docs.kernel.org/core-api/kernel-api.html#c.clk_get_opt= ional pub fn get(dev: &Device, name: Option<&CStr>) -> Result { - let con_id =3D name.map_or(ptr::null(), |n| n.as_ptr()); + let con_id =3D name.map_or(ptr::null(), |n| n.as_char_ptr()); =20 // SAFETY: It is safe to call [`clk_get_optional`] for a valid= device pointer. // --=20 2.51.0.915.g61a8936c21-goog From nobody Sat Feb 7 14:16:10 2026 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) (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 3CEFF27AC48 for ; Sat, 18 Oct 2025 18:03:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810614; cv=none; b=Rjhs+wv/bMelsIeoC7RJ9UIOJXe5g7NZIldNrcJmeEZ5URP9t7Vgu8ZpOWgGK8kpbYIAVDYnG7Okgglg3RKdGIgkhkcyv9EUJg/YmHAm6us/xOKQ9cLKuk2pZEZ2e09fDGj756Wl6UheO3OoRPnnIFLD0gCqGshB+svW7kR9iW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810614; c=relaxed/simple; bh=sGhtag8qWZn35dcfXoa8gr9jZ+96UIwtNQKYHPYg/UQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Ni66XJrvkgE6SHVK+j+09Jc3H6hjGuECi6ze6YG+WwNPLt3HCx/NIFG46kU3Hb4nITWaq6APRIICCMb1SsC2RRLgk5J4aI5EK7rNxUB6K+IGjKNH00su/x1HuGu2i7GwKHS6Gke4Y5ajiI2Wt1SvAWe8g899QHMeJezCa5VXAWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=yZiDWGvg; arc=none smtp.client-ip=209.85.221.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="yZiDWGvg" Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-4270a273b6eso1099016f8f.0 for ; Sat, 18 Oct 2025 11:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1760810609; x=1761415409; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=3hGW9wvWmko0jOtTzcTf0josI14Rm4dKhBHFVI9qV6E=; b=yZiDWGvgJhTn8S3Jcced4YXJ60edFgoE/GDYY9XQirKRPokllME9Auy+nV1F+9hKfA wgg1oE216xJviLmbrdb2bNL1utZ+8dY2jKMOhkG2LLAn6+j3IHi1joEa6uUs4ct+KCi3 HVvbQfUhHgg76HH27P68WyQ4/3de4YXdQJzAbCpjogZRWDjt6tae1asRp7thRa4aa49j 2Ao+qEu/rI8JzwEJr0grmxX4If5asGiQaSSzOBYGKcecBzZoi9sDIyelR9EtaWEr36Ew q4z/F0SCP0/FNlOhxHbFuvnGObNn4XxPLQXwF4/vYZptXniJTyP3UI2ER0DWXTjnlUBY 3zPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760810609; x=1761415409; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3hGW9wvWmko0jOtTzcTf0josI14Rm4dKhBHFVI9qV6E=; b=d4SsoHV/8hqWfNHLe9GcUprxQhRQMytIWrFy9QYYzacTPIsoXMWSxfye02irH8q/Ru 4v6Y29V8PLraCkRAtEsfnxLjmlnTYOt1Qo4F7uSVCG/G1bwJ8RnhsPGE3TpqBWnQo921 X+mmPB8+p+8nmy9q6xS0YTGWWZLxvkoTaaQ7wp2paWbYN6+7TIiZPFJungCBg9zalP8j NXcRQjQqGjTYPrk+fOG9LDDoQ/MxYdQoee/OD/gxQIleKCLoZObX4YOJWZcOWk1sS/57 r9lYF45zcQdufMKu3NriggxwI195d9W0mfE1cPEfA8qRkduJWSrXtKsRYrwQAFmGy3Np SZSg== X-Forwarded-Encrypted: i=1; AJvYcCVxOn/ABVAcXC3vlbbMd7OgNIbqiw9fSSxzQ8Rd6ePbm+yOhtPczLZqvggfEVtOuMZLpNsgw+9CxgnXlrY=@vger.kernel.org X-Gm-Message-State: AOJu0YwjjtYVvJciIG6zObqcmcOfqk2ueoQcq0wkwbVC2Xf3Vbs6gBKj +mxY61h5lyROBSPJC3WKQERrFtZ9PMt89hEkDsLztYoFmQzf6DmDesB8ZQumxt5Sb9TAqVfJAj2 ZZ0+SqH0V+Yo+rstqcQ== X-Google-Smtp-Source: AGHT+IG/FO8rWAikeqs5tUzrpiqkR4TRQ79qTSq2oIl/eJyJd7c6RbaDK56qoNSuHSIOJYj5yw9+qSnEpYh3S50= X-Received: from wmcn1.prod.google.com ([2002:a05:600c:c0c1:b0:46e:1ae9:749a]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6000:40da:b0:3ec:248f:f86a with SMTP id ffacd0b85a97d-42704e02b12mr4695190f8f.48.1760810608392; Sat, 18 Oct 2025 11:03:28 -0700 (PDT) Date: Sat, 18 Oct 2025 18:03:26 +0000 In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> X-Mailer: git-send-email 2.51.0.915.g61a8936c21-goog Message-ID: <20251018180326.3616043-1-aliceryhl@google.com> Subject: [PATCH v18 15/16] rust: support formatting of foreign types From: Alice Ryhl To: tamird@gmail.com Cc: Liam.Howlett@oracle.com, a.hindborg@kernel.org, airlied@gmail.com, alex.gaynor@gmail.com, aliceryhl@google.com, arve@android.com, axboe@kernel.dk, bhelgaas@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, broonie@kernel.org, cmllamas@google.com, dakr@kernel.org, dri-devel@lists.freedesktop.org, gary@garyguo.net, gregkh@linuxfoundation.org, jack@suse.cz, joelagnelf@nvidia.com, justinstitt@google.com, kwilczynski@kernel.org, leitao@debian.org, lgirdwood@gmail.com, linux-block@vger.kernel.org, linux-clk@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, llvm@lists.linux.dev, longman@redhat.com, lorenzo.stoakes@oracle.com, lossin@kernel.org, maco@android.com, mcgrof@kernel.org, mingo@redhat.com, mmaurer@google.com, morbo@google.com, mturquette@baylibre.com, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, nm@ti.com, ojeda@kernel.org, peterz@infradead.org, rafael@kernel.org, russ.weight@linux.dev, rust-for-linux@vger.kernel.org, sboyd@kernel.org, simona@ffwll.ch, surenb@google.com, tkjos@android.com, tmgross@umich.edu, urezki@gmail.com, vbabka@suse.cz, vireshk@kernel.org, viro@zeniv.linux.org.uk, will@kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tamir Duberstein Introduce a `fmt!` macro which wraps all arguments in `kernel::fmt::Adapter` and a `kernel::fmt::Display` trait. This enables formatting of foreign types (like `core::ffi::CStr`) that do not implement `core::fmt::Display` due to concerns around lossy conversions which do not apply in the kernel. Suggested-by: Alice Ryhl Link: https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/t= opic/Custom.20formatting/with/516476467 Acked-by: Greg Kroah-Hartman Reviewed-by: Alice Ryhl Acked-by: Danilo Krummrich Reviewed-by: Benno Lossin Signed-off-by: Tamir Duberstein Signed-off-by: Alice Ryhl --- rust/kernel/fmt.rs | 87 +++++++++++++++++++++++++++++++++++++- rust/kernel/prelude.rs | 3 +- rust/macros/fmt.rs | 94 ++++++++++++++++++++++++++++++++++++++++++ rust/macros/lib.rs | 19 +++++++++ rust/macros/quote.rs | 7 ++++ 5 files changed, 207 insertions(+), 3 deletions(-) create mode 100644 rust/macros/fmt.rs diff --git a/rust/kernel/fmt.rs b/rust/kernel/fmt.rs index 0306e8388968..84d634201d90 100644 --- a/rust/kernel/fmt.rs +++ b/rust/kernel/fmt.rs @@ -4,4 +4,89 @@ //! //! This module is intended to be used in place of `core::fmt` in kernel c= ode. =20 -pub use core::fmt::{Arguments, Debug, Display, Error, Formatter, Result, W= rite}; +pub use core::fmt::{Arguments, Debug, Error, Formatter, Result, Write}; + +/// Internal adapter used to route allow implementations of formatting tra= its for foreign types. +/// +/// It is inserted automatically by the [`fmt!`] macro and is not meant to= be used directly. +/// +/// [`fmt!`]: crate::prelude::fmt! +#[doc(hidden)] +pub struct Adapter(pub T); + +macro_rules! impl_fmt_adapter_forward { + ($($trait:ident),* $(,)?) =3D> { + $( + impl $trait for Adapter { + fn fmt(&self, f: &mut Formatter<'_>) -> Result { + let Self(t) =3D self; + $trait::fmt(t, f) + } + } + )* + }; +} + +use core::fmt::{Binary, LowerExp, LowerHex, Octal, Pointer, UpperExp, Uppe= rHex}; +impl_fmt_adapter_forward!(Debug, LowerHex, UpperHex, Octal, Binary, Pointe= r, LowerExp, UpperExp); + +/// A copy of [`core::fmt::Display`] that allows us to implement it for fo= reign types. +/// +/// Types should implement this trait rather than [`core::fmt::Display`]. = Together with the +/// [`Adapter`] type and [`fmt!`] macro, it allows for formatting foreign = types (e.g. types from +/// core) which do not implement [`core::fmt::Display`] directly. +/// +/// [`fmt!`]: crate::prelude::fmt! +pub trait Display { + /// Same as [`core::fmt::Display::fmt`]. + fn fmt(&self, f: &mut Formatter<'_>) -> Result; +} + +impl Display for &T { + fn fmt(&self, f: &mut Formatter<'_>) -> Result { + Display::fmt(*self, f) + } +} + +impl core::fmt::Display for Adapter<&T> { + fn fmt(&self, f: &mut Formatter<'_>) -> Result { + let Self(t) =3D self; + Display::fmt(t, f) + } +} + +macro_rules! impl_display_forward { + ($( + $( { $($generics:tt)* } )? $ty:ty $( { where $($where:tt)* } )? + ),* $(,)?) =3D> { + $( + impl$($($generics)*)? Display for $ty $(where $($where)*)? { + fn fmt(&self, f: &mut Formatter<'_>) -> Result { + core::fmt::Display::fmt(self, f) + } + } + )* + }; +} + +impl_display_forward!( + bool, + char, + core::panic::PanicInfo<'_>, + Arguments<'_>, + i128, + i16, + i32, + i64, + i8, + isize, + str, + u128, + u16, + u32, + u64, + u8, + usize, + {} crate::sync::Arc {where crate::sync::Arc: core::fm= t::Display}, + {} crate::sync::UniqueArc {where crate::sync::UniqueArc<= T>: core::fmt::Display}, +); diff --git a/rust/kernel/prelude.rs b/rust/kernel/prelude.rs index 198d09a31449..26424ad7e989 100644 --- a/rust/kernel/prelude.rs +++ b/rust/kernel/prelude.rs @@ -25,7 +25,7 @@ pub use crate::alloc::{flags::*, Box, KBox, KVBox, KVVec, KVec, VBox, VVec= , Vec}; =20 #[doc(no_inline)] -pub use macros::{export, kunit_tests, module, vtable}; +pub use macros::{export, fmt, kunit_tests, module, vtable}; =20 pub use pin_init::{init, pin_data, pin_init, pinned_drop, InPlaceWrite, In= it, PinInit, Zeroable}; =20 @@ -36,7 +36,6 @@ pub use super::dbg; pub use super::{dev_alert, dev_crit, dev_dbg, dev_emerg, dev_err, dev_info= , dev_notice, dev_warn}; pub use super::{pr_alert, pr_crit, pr_debug, pr_emerg, pr_err, pr_info, pr= _notice, pr_warn}; -pub use core::format_args as fmt; =20 pub use super::{try_init, try_pin_init}; =20 diff --git a/rust/macros/fmt.rs b/rust/macros/fmt.rs new file mode 100644 index 000000000000..2f4b9f6e2211 --- /dev/null +++ b/rust/macros/fmt.rs @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-2.0 + +use proc_macro::{Ident, TokenStream, TokenTree}; +use std::collections::BTreeSet; + +/// Please see [`crate::fmt`] for documentation. +pub(crate) fn fmt(input: TokenStream) -> TokenStream { + let mut input =3D input.into_iter(); + + let first_opt =3D input.next(); + let first_owned_str; + let mut names =3D BTreeSet::new(); + let first_span =3D { + let Some((mut first_str, first_span)) =3D (match first_opt.as_ref(= ) { + Some(TokenTree::Literal(first_lit)) =3D> { + first_owned_str =3D first_lit.to_string(); + Some(first_owned_str.as_str()).and_then(|first| { + let first =3D first.strip_prefix('"')?; + let first =3D first.strip_suffix('"')?; + Some((first, first_lit.span())) + }) + } + _ =3D> None, + }) else { + return first_opt.into_iter().chain(input).collect(); + }; + + // Parse `identifier`s from the format string. + // + // See https://doc.rust-lang.org/std/fmt/index.html#syntax. + while let Some((_, rest)) =3D first_str.split_once('{') { + first_str =3D rest; + if let Some(rest) =3D first_str.strip_prefix('{') { + first_str =3D rest; + continue; + } + if let Some((name, rest)) =3D first_str.split_once('}') { + first_str =3D rest; + let name =3D name.split_once(':').map_or(name, |(name, _)|= name); + if !name.is_empty() && !name.chars().all(|c| c.is_ascii_di= git()) { + names.insert(name); + } + } + } + first_span + }; + + let adapter =3D quote_spanned!(first_span =3D> ::kernel::fmt::Adapter); + + let mut args =3D TokenStream::from_iter(first_opt); + { + let mut flush =3D |args: &mut TokenStream, current: &mut TokenStre= am| { + let current =3D std::mem::take(current); + if !current.is_empty() { + let (lhs, rhs) =3D (|| { + let mut current =3D current.into_iter(); + let mut acc =3D TokenStream::new(); + while let Some(tt) =3D current.next() { + // Split on `=3D` only once to handle cases like `= a =3D b =3D c`. + if matches!(&tt, TokenTree::Punct(p) if p.as_char(= ) =3D=3D '=3D') { + names.remove(acc.to_string().as_str()); + // Include the `=3D` itself to keep the handli= ng below uniform. + acc.extend([tt]); + return (Some(acc), current.collect::()); + } + acc.extend([tt]); + } + (None, acc) + })(); + args.extend(quote_spanned!(first_span =3D> #lhs #adapter(&= #rhs))); + } + }; + + let mut current =3D TokenStream::new(); + for tt in input { + match &tt { + TokenTree::Punct(p) if p.as_char() =3D=3D ',' =3D> { + flush(&mut args, &mut current); + &mut args + } + _ =3D> &mut current, + } + .extend([tt]); + } + flush(&mut args, &mut current); + } + + for name in names { + let name =3D Ident::new(name, first_span); + args.extend(quote_spanned!(first_span =3D> , #name =3D #adapter(&#= name))); + } + + quote_spanned!(first_span =3D> ::core::format_args!(#args)) +} diff --git a/rust/macros/lib.rs b/rust/macros/lib.rs index fa847cf3a9b5..793f712dbf7c 100644 --- a/rust/macros/lib.rs +++ b/rust/macros/lib.rs @@ -15,6 +15,7 @@ mod quote; mod concat_idents; mod export; +mod fmt; mod helpers; mod kunit; mod module; @@ -201,6 +202,24 @@ pub fn export(attr: TokenStream, ts: TokenStream) -> T= okenStream { export::export(attr, ts) } =20 +/// Like [`core::format_args!`], but automatically wraps arguments in [`ke= rnel::fmt::Adapter`]. +/// +/// This macro allows generating `fmt::Arguments` while ensuring that each= argument is wrapped with +/// `::kernel::fmt::Adapter`, which customizes formatting behavior for ker= nel logging. +/// +/// Named arguments used in the format string (e.g. `{foo}`) are detected = and resolved from local +/// bindings. All positional and named arguments are automatically wrapped. +/// +/// This macro is an implementation detail of other kernel logging macros = like [`pr_info!`] and +/// should not typically be used directly. +/// +/// [`kernel::fmt::Adapter`]: ../kernel/fmt/struct.Adapter.html +/// [`pr_info!`]: ../kernel/macro.pr_info.html +#[proc_macro] +pub fn fmt(input: TokenStream) -> TokenStream { + fmt::fmt(input) +} + /// Concatenate two identifiers. /// /// This is useful in macros that need to declare or reference items with = names diff --git a/rust/macros/quote.rs b/rust/macros/quote.rs index acc140c18653..ddfc21577539 100644 --- a/rust/macros/quote.rs +++ b/rust/macros/quote.rs @@ -48,6 +48,7 @@ macro_rules! quote_spanned { ($span:expr =3D> $($tt:tt)*) =3D> {{ let mut tokens =3D ::proc_macro::TokenStream::new(); { + #[allow(unused_variables)] let span =3D $span; quote_spanned!(@proc tokens span $($tt)*); } @@ -146,6 +147,12 @@ macro_rules! quote_spanned { )]); quote_spanned!(@proc $v $span $($tt)*); }; + (@proc $v:ident $span:ident & $($tt:tt)*) =3D> { + $v.extend([::proc_macro::TokenTree::Punct( + ::proc_macro::Punct::new('&', ::proc_macro::Spacing::Alone), + )]); + quote_spanned!(@proc $v $span $($tt)*); + }; (@proc $v:ident $span:ident _ $($tt:tt)*) =3D> { $v.extend([::proc_macro::TokenTree::Ident( ::proc_macro::Ident::new("_", $span), --=20 2.51.0.915.g61a8936c21-goog From nobody Sat Feb 7 14:16:10 2026 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) (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 D17E5244677 for ; Sat, 18 Oct 2025 18:06:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810768; cv=none; b=AD/v0gHBJNvU35y6n8gyFy2ZOjSR9egPdOqC/BXiO0foZudDKC8mpYcAGJ9igH33tP6I5j8nMxsDeVwY057foSLp1IN8tXoylMDfrgWkc3KR/EndgG9A872cLHIu4VJVQoiFLdCyjlAg+gilx6iiUefeVstvIrT8dHN6JNZiUSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760810768; c=relaxed/simple; bh=P3uF3l/XnGsWbqVdpQ8R/BGDGmARvshsKgJRpDm9LXY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=tIBWJuEYbVOQk8+v8h8ppu8KrfJdavGckYP2auAq6g5Oh2h3+Oje75QvUEB+iyOLkt+JJRE3NjC6ukzwxAK6RDOpKJD3xsSk+95xlHLwarLPiUgc/TA0ke2e7a2PLUYTs5+H34ce/N/pliPs8ePXX0uI746PvGotnSt4pHmqvpI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=4E5mcIso; arc=none smtp.client-ip=209.85.221.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="4E5mcIso" Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-3ef9218daf5so4218171f8f.1 for ; Sat, 18 Oct 2025 11:06:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1760810763; x=1761415563; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=mIeNY0iNrZAtVGi4QjZXC1U/h9Z3EWzRzEsUz0l7o4Q=; b=4E5mcIsodiTuslSFRUZtYQLJD1Z19KIVa4xkmfWUEL1IEyRV4F3gEnyhtp22Vc0tB7 4aURrfhuobleSVh3k/0Za2H8602FN2hEPEb1uUcAU0xYngjelNbPBbzAtR0YCF1yY0xu 93NqzzLcykvv3G4Vehry4ge+rIm/99plZd3n/1I8xfgCqpw7KJko+MZ1nWQXA3teJygp xY8fw+MssPqLu67BXi0hQV8iIkoyyugSZIRMp9JyxNjIaOltz35KNc08FjAAXZYMNiim HxzkvVyL0t4R+gTyvBrDMnc8T13ORymE15xROuJRCbh3a7EenAetLs/Y1p+KLMwvinLR /qaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760810763; x=1761415563; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=mIeNY0iNrZAtVGi4QjZXC1U/h9Z3EWzRzEsUz0l7o4Q=; b=S2qpdS5U+VAwOsCgZXY5nvAx5NgEoF3KgXW2CpwVSqKfLMJ8YFnVekIFthxRg+YSSj 45216zVDO+BBF0Va/VH8lacM/DmxnFPiEKwo15dUAusetd7mAa/yLjJU3C9zFJ3DRc3d VgvsZmfWIgvwsqK0x5roRdneWGvtZWZ4c4HRUMFhzxdNZubV3zqfGqqxXGmLHsttIV5h URtvQtz6hAiGHg7EmfPPGkcCuvVpkdSoErGeKxtL3/3+bBNeJc7qA+nTihN+FljUwTgU zp6UCpvi6ib9g5WUl8bvnJp3lHMFtkR+2g0mYwiE5M8+WoKIwPg3RRo5MpvtzlO/x2B+ OnrQ== X-Forwarded-Encrypted: i=1; AJvYcCXMnt+rCnv58KbkUWs51yKXNpz82l+JXuYWGOcgTne3M8YSSCBeNTYCrQ08tqpod26T+WbmBD4mXUP0Ssk=@vger.kernel.org X-Gm-Message-State: AOJu0YzmvXb7/eD3/oeREpgbAqO/EZ0Kv2TZogwwI1TF5SDmpWJFZhYT biD0gMqpIbtfGWkL9E5+8WsVgtkjd/DLsBCet3CG8DrtlwJwmThu1esD9YqHwEbERCjNKJFht/W 62srHvtZ3gP/f3649Dg== X-Google-Smtp-Source: AGHT+IE86l51ndhUWZTut8S5VUYLmxpG8Q56vJS6EWLJutJ8D7aftyVt8Ersf1ermaztwhw0XE4SaU4Q2OpXWvo= X-Received: from wmg10.prod.google.com ([2002:a05:600c:22ca:b0:46f:aa50:d717]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:310e:b0:471:14f5:1268 with SMTP id 5b1f17b1804b1-47117907a77mr59553635e9.25.1760810763098; Sat, 18 Oct 2025 11:06:03 -0700 (PDT) Date: Sat, 18 Oct 2025 18:05:47 +0000 In-Reply-To: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251018-cstr-core-v18-0-ef3d02760804@gmail.com> X-Mailer: git-send-email 2.51.0.915.g61a8936c21-goog Message-ID: <20251018180552.3616793-1-aliceryhl@google.com> Subject: [PATCH v18 16/16] rust: replace `CStr` with `core::ffi::CStr` From: Alice Ryhl To: tamird@gmail.com Cc: Liam.Howlett@oracle.com, a.hindborg@kernel.org, airlied@gmail.com, alex.gaynor@gmail.com, aliceryhl@google.com, arve@android.com, axboe@kernel.dk, bhelgaas@google.com, bjorn3_gh@protonmail.com, boqun.feng@gmail.com, brauner@kernel.org, broonie@kernel.org, cmllamas@google.com, dakr@kernel.org, dri-devel@lists.freedesktop.org, gary@garyguo.net, gregkh@linuxfoundation.org, jack@suse.cz, joelagnelf@nvidia.com, justinstitt@google.com, kwilczynski@kernel.org, leitao@debian.org, lgirdwood@gmail.com, linux-block@vger.kernel.org, linux-clk@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, llvm@lists.linux.dev, longman@redhat.com, lorenzo.stoakes@oracle.com, lossin@kernel.org, maco@android.com, mcgrof@kernel.org, mingo@redhat.com, mmaurer@google.com, morbo@google.com, mturquette@baylibre.com, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, nm@ti.com, ojeda@kernel.org, peterz@infradead.org, rafael@kernel.org, russ.weight@linux.dev, rust-for-linux@vger.kernel.org, sboyd@kernel.org, simona@ffwll.ch, surenb@google.com, tkjos@android.com, tmgross@umich.edu, urezki@gmail.com, vbabka@suse.cz, vireshk@kernel.org, viro@zeniv.linux.org.uk, will@kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Tamir Duberstein `kernel::ffi::CStr` was introduced in commit d126d2380131 ("rust: str: add `CStr` type") in November 2022 as an upstreaming of earlier work that was done in May 2021[0]. That earlier work, having predated the inclusion of `CStr` in `core`, largely duplicated the implementation of `std::ffi::CStr`. `std::ffi::CStr` was moved to `core::ffi::CStr` in Rust 1.64 in September 2022. Hence replace `kernel::str::CStr` with `core::ffi::CStr` to reduce our custom code footprint, and retain needed custom functionality through an extension trait. Add `CStr` to `ffi` and the kernel prelude. Link: https://github.com/Rust-for-Linux/linux/commit/faa3cbcca03d0dec8f8e43= f1d8d5c0860d98a23f [0] Acked-by: Greg Kroah-Hartman Reviewed-by: Alice Ryhl Acked-by: Danilo Krummrich Reviewed-by: Benno Lossin Signed-off-by: Tamir Duberstein Signed-off-by: Alice Ryhl --- drivers/android/binder/stats.rs | 2 +- rust/ffi.rs | 2 + rust/kernel/debugfs/entry.rs | 2 +- rust/kernel/device.rs | 1 + rust/kernel/drm/ioctl.rs | 4 +- rust/kernel/error.rs | 2 + rust/kernel/firmware.rs | 9 +- rust/kernel/prelude.rs | 4 +- rust/kernel/seq_file.rs | 2 +- rust/kernel/str.rs | 395 ++++++++------------------------ rust/kernel/sync/condvar.rs | 2 +- rust/kernel/sync/lock.rs | 2 +- rust/kernel/sync/lock/global.rs | 2 +- 13 files changed, 114 insertions(+), 315 deletions(-) diff --git a/drivers/android/binder/stats.rs b/drivers/android/binder/stats= .rs index 10c43679d5c3..037002651941 100644 --- a/drivers/android/binder/stats.rs +++ b/drivers/android/binder/stats.rs @@ -61,7 +61,7 @@ pub(crate) fn debug_print(&self, prefix: &str, m: &SeqFil= e) { =20 mod strings { use core::str::from_utf8_unchecked; - use kernel::str::CStr; + use kernel::str::{CStr, CStrExt as _}; =20 extern "C" { static binder_command_strings: [*const u8; super::BC_COUNT]; diff --git a/rust/ffi.rs b/rust/ffi.rs index d60aad792af4..f961e9728f59 100644 --- a/rust/ffi.rs +++ b/rust/ffi.rs @@ -46,3 +46,5 @@ macro_rules! alias { } =20 pub use core::ffi::c_void; + +pub use core::ffi::CStr; diff --git a/rust/kernel/debugfs/entry.rs b/rust/kernel/debugfs/entry.rs index f99402cd3ba0..706cb7f73d6c 100644 --- a/rust/kernel/debugfs/entry.rs +++ b/rust/kernel/debugfs/entry.rs @@ -3,7 +3,7 @@ =20 use crate::debugfs::file_ops::FileOps; use crate::ffi::c_void; -use crate::str::CStr; +use crate::str::{CStr, CStrExt as _}; use crate::sync::Arc; use core::marker::PhantomData; =20 diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs index 1321e6f0b53c..0b13aa60b685 100644 --- a/rust/kernel/device.rs +++ b/rust/kernel/device.rs @@ -13,6 +13,7 @@ =20 #[cfg(CONFIG_PRINTK)] use crate::c_str; +use crate::str::CStrExt as _; =20 pub mod property; =20 diff --git a/rust/kernel/drm/ioctl.rs b/rust/kernel/drm/ioctl.rs index 69efbdb4c85a..cf328101dde4 100644 --- a/rust/kernel/drm/ioctl.rs +++ b/rust/kernel/drm/ioctl.rs @@ -156,7 +156,9 @@ macro_rules! declare_drm_ioctls { Some($cmd) }, flags: $flags, - name: $crate::c_str!(::core::stringify!($cmd)).as_char= _ptr(), + name: $crate::str::as_char_ptr_in_const_context( + $crate::c_str!(::core::stringify!($cmd)), + ), } ),*]; ioctls diff --git a/rust/kernel/error.rs b/rust/kernel/error.rs index 1c0e0e241daa..258b12afdcba 100644 --- a/rust/kernel/error.rs +++ b/rust/kernel/error.rs @@ -182,6 +182,8 @@ pub fn name(&self) -> Option<&'static CStr> { if ptr.is_null() { None } else { + use crate::str::CStrExt as _; + // SAFETY: The string returned by `errname` is static and `NUL= `-terminated. Some(unsafe { CStr::from_char_ptr(ptr) }) } diff --git a/rust/kernel/firmware.rs b/rust/kernel/firmware.rs index 94e6bb88b903..376e7e77453f 100644 --- a/rust/kernel/firmware.rs +++ b/rust/kernel/firmware.rs @@ -4,7 +4,14 @@ //! //! C header: [`include/linux/firmware.h`](srctree/include/linux/firmware.= h) =20 -use crate::{bindings, device::Device, error::Error, error::Result, ffi, st= r::CStr}; +use crate::{ + bindings, + device::Device, + error::Error, + error::Result, + ffi, + str::{CStr, CStrExt as _}, +}; use core::ptr::NonNull; =20 /// # Invariants diff --git a/rust/kernel/prelude.rs b/rust/kernel/prelude.rs index 26424ad7e989..33fa8404c5c6 100644 --- a/rust/kernel/prelude.rs +++ b/rust/kernel/prelude.rs @@ -19,7 +19,7 @@ =20 pub use ::ffi::{ c_char, c_int, c_long, c_longlong, c_schar, c_short, c_uchar, c_uint, = c_ulong, c_ulonglong, - c_ushort, c_void, + c_ushort, c_void, CStr, }; =20 pub use crate::alloc::{flags::*, Box, KBox, KVBox, KVVec, KVec, VBox, VVec= , Vec}; @@ -43,7 +43,7 @@ =20 pub use super::error::{code::*, Error, Result}; =20 -pub use super::{str::CStr, ThisModule}; +pub use super::{str::CStrExt as _, ThisModule}; =20 pub use super::init::InPlaceInit; =20 diff --git a/rust/kernel/seq_file.rs b/rust/kernel/seq_file.rs index 59fbfc2473f8..855e533813a6 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) =20 -use crate::{bindings, c_str, fmt, types::NotThreadSafe, types::Opaque}; +use crate::{bindings, c_str, fmt, str::CStrExt as _, types::NotThreadSafe,= types::Opaque}; =20 /// A utility for generating the contents of a seq file. #[repr(transparent)] diff --git a/rust/kernel/str.rs b/rust/kernel/str.rs index 5c74e5f77601..da539e1f29d4 100644 --- a/rust/kernel/str.rs +++ b/rust/kernel/str.rs @@ -10,9 +10,11 @@ }; use core::{ marker::PhantomData, - ops::{self, Deref, DerefMut, Index}, + ops::{Deref, DerefMut, Index}, }; =20 +pub use crate::prelude::CStr; + /// Byte string without UTF-8 validity guarantee. #[repr(transparent)] pub struct BStr([u8]); @@ -186,58 +188,17 @@ macro_rules! b_str { // - error[E0379]: functions in trait impls cannot be declared const #[inline] pub const fn as_char_ptr_in_const_context(c_str: &CStr) -> *const c_char { - c_str.0.as_ptr() + c_str.as_ptr().cast() } =20 -/// Possible errors when using conversion functions in [`CStr`]. -#[derive(Debug, Clone, Copy)] -pub enum CStrConvertError { - /// Supplied bytes contain an interior `NUL`. - InteriorNul, - - /// Supplied bytes are not terminated by `NUL`. - NotNulTerminated, -} +mod private { + pub trait Sealed {} =20 -impl From for Error { - #[inline] - fn from(_: CStrConvertError) -> Error { - EINVAL - } + impl Sealed for super::CStr {} } =20 -/// A string that is guaranteed to have exactly one `NUL` byte, which is a= t the -/// end. -/// -/// Used for interoperability with kernel APIs that take C strings. -#[repr(transparent)] -pub struct CStr([u8]); - -impl CStr { - /// Returns the length of this string excluding `NUL`. - #[inline] - pub const fn len(&self) -> usize { - self.len_with_nul() - 1 - } - - /// Returns the length of this string with `NUL`. - #[inline] - pub const fn len_with_nul(&self) -> usize { - if self.0.is_empty() { - // SAFETY: This is one of the invariant of `CStr`. - // We add a `unreachable_unchecked` here to hint the optimizer= that - // the value returned from this function is non-zero. - unsafe { core::hint::unreachable_unchecked() }; - } - self.0.len() - } - - /// Returns `true` if the string only includes `NUL`. - #[inline] - pub const fn is_empty(&self) -> bool { - self.len() =3D=3D 0 - } - +/// Extensions to [`CStr`]. +pub trait CStrExt: private::Sealed { /// Wraps a raw C string pointer. /// /// # Safety @@ -245,54 +206,9 @@ pub const fn is_empty(&self) -> bool { /// `ptr` must be a valid pointer to a `NUL`-terminated C string, and = it must /// last at least `'a`. When `CStr` is alive, the memory pointed by `p= tr` /// must not be mutated. - #[inline] - pub unsafe fn from_char_ptr<'a>(ptr: *const c_char) -> &'a Self { - // SAFETY: The safety precondition guarantees `ptr` is a valid poi= nter - // to a `NUL`-terminated C string. - let len =3D unsafe { bindings::strlen(ptr) } + 1; - // SAFETY: Lifetime guaranteed by the safety precondition. - let bytes =3D unsafe { core::slice::from_raw_parts(ptr.cast(), len= ) }; - // SAFETY: As `len` is returned by `strlen`, `bytes` does not cont= ain interior `NUL`. - // As we have added 1 to `len`, the last byte is known to be `NUL`. - unsafe { Self::from_bytes_with_nul_unchecked(bytes) } - } - - /// Creates a [`CStr`] from a `[u8]`. - /// - /// The provided slice must be `NUL`-terminated, does not contain any - /// interior `NUL` bytes. - pub const fn from_bytes_with_nul(bytes: &[u8]) -> Result<&Self, CStrCo= nvertError> { - if bytes.is_empty() { - return Err(CStrConvertError::NotNulTerminated); - } - if bytes[bytes.len() - 1] !=3D 0 { - return Err(CStrConvertError::NotNulTerminated); - } - let mut i =3D 0; - // `i + 1 < bytes.len()` allows LLVM to optimize away bounds check= ing, - // while it couldn't optimize away bounds checks for `i < bytes.le= n() - 1`. - while i + 1 < bytes.len() { - if bytes[i] =3D=3D 0 { - return Err(CStrConvertError::InteriorNul); - } - i +=3D 1; - } - // SAFETY: We just checked that all properties hold. - Ok(unsafe { Self::from_bytes_with_nul_unchecked(bytes) }) - } - - /// Creates a [`CStr`] from a `[u8]` without performing any additional - /// checks. - /// - /// # Safety - /// - /// `bytes` *must* end with a `NUL` byte, and should only have a single - /// `NUL` byte (or the string will be truncated). - #[inline] - pub const unsafe fn from_bytes_with_nul_unchecked(bytes: &[u8]) -> &CS= tr { - // SAFETY: Properties of `bytes` guaranteed by the safety precondi= tion. - unsafe { core::mem::transmute(bytes) } - } + // This function exists to paper over the fact that `CStr::from_ptr` t= akes a `*const + // core::ffi::c_char` rather than a `*const crate::ffi::c_char`. + unsafe fn from_char_ptr<'a>(ptr: *const c_char) -> &'a Self; =20 /// Creates a mutable [`CStr`] from a `[u8]` without performing any /// additional checks. @@ -301,99 +217,16 @@ pub const fn from_bytes_with_nul(bytes: &[u8]) -> Res= ult<&Self, CStrConvertError /// /// `bytes` *must* end with a `NUL` byte, and should only have a single /// `NUL` byte (or the string will be truncated). - #[inline] - pub unsafe fn from_bytes_with_nul_unchecked_mut(bytes: &mut [u8]) -> &= mut CStr { - // SAFETY: Properties of `bytes` guaranteed by the safety precondi= tion. - unsafe { &mut *(core::ptr::from_mut(bytes) as *mut CStr) } - } + unsafe fn from_bytes_with_nul_unchecked_mut(bytes: &mut [u8]) -> &mut = Self; =20 /// Returns a C pointer to the string. - /// - /// Using this function in a const context is deprecated in favor of - /// [`as_char_ptr_in_const_context`] in preparation for replacing `CSt= r` with `core::ffi::CStr` - /// which does not have this method. - #[inline] - pub const fn as_char_ptr(&self) -> *const c_char { - as_char_ptr_in_const_context(self) - } - - /// Convert the string to a byte slice without the trailing `NUL` byte. - #[inline] - pub fn to_bytes(&self) -> &[u8] { - &self.0[..self.len()] - } - - /// Convert the string to a byte slice without the trailing `NUL` byte. - /// - /// This function is deprecated in favor of [`Self::to_bytes`] in prep= aration for replacing - /// `CStr` with `core::ffi::CStr` which does not have this method. - #[inline] - pub fn as_bytes(&self) -> &[u8] { - self.to_bytes() - } - - /// Convert the string to a byte slice containing the trailing `NUL` b= yte. - #[inline] - pub const fn to_bytes_with_nul(&self) -> &[u8] { - &self.0 - } - - /// Convert the string to a byte slice containing the trailing `NUL` b= yte. - /// - /// This function is deprecated in favor of [`Self::to_bytes_with_nul`= ] in preparation for - /// replacing `CStr` with `core::ffi::CStr` which does not have this m= ethod. - #[inline] - pub const fn as_bytes_with_nul(&self) -> &[u8] { - self.to_bytes_with_nul() - } - - /// Yields a [`&str`] slice if the [`CStr`] contains valid UTF-8. - /// - /// If the contents of the [`CStr`] are valid UTF-8 data, this - /// function will return the corresponding [`&str`] slice. Otherwise, - /// it will return an error with details of where UTF-8 validation fai= led. - /// - /// # Examples - /// - /// ``` - /// # use kernel::str::CStr; - /// let cstr =3D CStr::from_bytes_with_nul(b"foo\0")?; - /// assert_eq!(cstr.to_str(), Ok("foo")); - /// # Ok::<(), kernel::error::Error>(()) - /// ``` - #[inline] - pub fn to_str(&self) -> Result<&str, core::str::Utf8Error> { - core::str::from_utf8(self.as_bytes()) - } - - /// Unsafely convert this [`CStr`] into a [`&str`], without checking f= or - /// valid UTF-8. - /// - /// # Safety - /// - /// The contents must be valid UTF-8. - /// - /// # Examples - /// - /// ``` - /// # use kernel::c_str; - /// # use kernel::str::CStr; - /// let bar =3D c_str!("=E3=83=84"); - /// // SAFETY: String literals are guaranteed to be valid UTF-8 - /// // by the Rust compiler. - /// assert_eq!(unsafe { bar.as_str_unchecked() }, "=E3=83=84"); - /// ``` - #[inline] - pub unsafe fn as_str_unchecked(&self) -> &str { - // SAFETY: TODO. - unsafe { core::str::from_utf8_unchecked(self.as_bytes()) } - } + // This function exists to paper over the fact that `CStr::as_ptr` ret= urns a `*const + // core::ffi::c_char` rather than a `*const crate::ffi::c_char`. + fn as_char_ptr(&self) -> *const c_char; =20 /// Convert this [`CStr`] into a [`CString`] by allocating memory and /// copying over the string data. - pub fn to_cstring(&self) -> Result { - CString::try_from(self) - } + fn to_cstring(&self) -> Result; =20 /// Converts this [`CStr`] to its ASCII lower case equivalent in-place. /// @@ -404,11 +237,7 @@ pub fn to_cstring(&self) -> Result { /// [`to_ascii_lowercase()`]. /// /// [`to_ascii_lowercase()`]: #method.to_ascii_lowercase - pub fn make_ascii_lowercase(&mut self) { - // INVARIANT: This doesn't introduce or remove NUL bytes in the C - // string. - self.0.make_ascii_lowercase(); - } + fn make_ascii_lowercase(&mut self); =20 /// Converts this [`CStr`] to its ASCII upper case equivalent in-place. /// @@ -419,11 +248,7 @@ pub fn make_ascii_lowercase(&mut self) { /// [`to_ascii_uppercase()`]. /// /// [`to_ascii_uppercase()`]: #method.to_ascii_uppercase - pub fn make_ascii_uppercase(&mut self) { - // INVARIANT: This doesn't introduce or remove NUL bytes in the C - // string. - self.0.make_ascii_uppercase(); - } + fn make_ascii_uppercase(&mut self); =20 /// Returns a copy of this [`CString`] where each character is mapped = to its /// ASCII lower case equivalent. @@ -434,13 +259,7 @@ pub fn make_ascii_uppercase(&mut self) { /// To lowercase the value in-place, use [`make_ascii_lowercase`]. /// /// [`make_ascii_lowercase`]: str::make_ascii_lowercase - pub fn to_ascii_lowercase(&self) -> Result { - let mut s =3D self.to_cstring()?; - - s.make_ascii_lowercase(); - - Ok(s) - } + fn to_ascii_lowercase(&self) -> Result; =20 /// Returns a copy of this [`CString`] where each character is mapped = to its /// ASCII upper case equivalent. @@ -451,13 +270,7 @@ pub fn to_ascii_lowercase(&self) -> Result { /// To uppercase the value in-place, use [`make_ascii_uppercase`]. /// /// [`make_ascii_uppercase`]: str::make_ascii_uppercase - pub fn to_ascii_uppercase(&self) -> Result { - let mut s =3D self.to_cstring()?; - - s.make_ascii_uppercase(); - - Ok(s) - } + fn to_ascii_uppercase(&self) -> Result; } =20 impl fmt::Display for CStr { @@ -490,98 +303,75 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Res= ult { } } =20 -impl fmt::Debug for CStr { - /// Formats printable ASCII characters with a double quote on either e= nd, escaping the rest. - /// - /// ``` - /// # use kernel::c_str; - /// # use kernel::prelude::fmt; - /// # use kernel::str::CStr; - /// # use kernel::str::CString; - /// let penguin =3D c_str!("=F0=9F=90=A7"); - /// let s =3D CString::try_from_fmt(fmt!("{penguin:?}"))?; - /// assert_eq!(s.as_bytes_with_nul(), "\"\\xf0\\x9f\\x90\\xa7\"\0".as_= bytes()); - /// - /// // Embedded double quotes are escaped. - /// let ascii =3D c_str!("so \"cool\""); - /// let s =3D CString::try_from_fmt(fmt!("{ascii:?}"))?; - /// assert_eq!(s.as_bytes_with_nul(), "\"so \\\"cool\\\"\"\0".as_bytes= ()); - /// # Ok::<(), kernel::error::Error>(()) - /// ``` - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.write_str("\"")?; - for &c in self.as_bytes() { - match c { - // Printable characters. - b'\"' =3D> f.write_str("\\\"")?, - 0x20..=3D0x7e =3D> f.write_char(c as char)?, - _ =3D> write!(f, "\\x{c:02x}")?, - } - } - f.write_str("\"") - } +/// Converts a mutable C string to a mutable byte slice. +/// +/// # Safety +/// +/// The caller must ensure that the slice ends in a NUL byte and contains = no other NUL bytes before +/// the borrow ends and the underlying [`CStr`] is used. +unsafe fn to_bytes_mut(s: &mut CStr) -> &mut [u8] { + // SAFETY: the cast from `&CStr` to `&[u8]` is safe since `CStr` has t= he same layout as `&[u8]` + // (this is technically not guaranteed, but we rely on it here). The p= ointer dereference is + // safe since it comes from a mutable reference which is guaranteed to= be valid for writes. + unsafe { &mut *(core::ptr::from_mut(s) as *mut [u8]) } } =20 -impl AsRef for CStr { +impl CStrExt for CStr { #[inline] - fn as_ref(&self) -> &BStr { - BStr::from_bytes(self.as_bytes()) + unsafe fn from_char_ptr<'a>(ptr: *const c_char) -> &'a Self { + // SAFETY: The safety preconditions are the same as for `CStr::fro= m_ptr`. + unsafe { CStr::from_ptr(ptr.cast()) } } -} =20 -impl Deref for CStr { - type Target =3D BStr; + #[inline] + unsafe fn from_bytes_with_nul_unchecked_mut(bytes: &mut [u8]) -> &mut = Self { + // SAFETY: the cast from `&[u8]` to `&CStr` is safe since the prop= erties of `bytes` are + // guaranteed by the safety precondition and `CStr` has the same l= ayout as `&[u8]` (this is + // technically not guaranteed, but we rely on it here). The pointe= r dereference is safe + // since it comes from a mutable reference which is guaranteed to = be valid for writes. + unsafe { &mut *(core::ptr::from_mut(bytes) as *mut CStr) } + } =20 #[inline] - fn deref(&self) -> &Self::Target { - self.as_ref() + fn as_char_ptr(&self) -> *const c_char { + self.as_ptr().cast() + } + + fn to_cstring(&self) -> Result { + CString::try_from(self) } -} =20 -impl Index> for CStr { - type Output =3D CStr; + fn make_ascii_lowercase(&mut self) { + // SAFETY: This doesn't introduce or remove NUL bytes in the C str= ing. + unsafe { to_bytes_mut(self) }.make_ascii_lowercase(); + } =20 - #[inline] - fn index(&self, index: ops::RangeFrom) -> &Self::Output { - // Delegate bounds checking to slice. - // Assign to _ to mute clippy's unnecessary operation warning. - let _ =3D &self.as_bytes()[index.start..]; - // SAFETY: We just checked the bounds. - unsafe { Self::from_bytes_with_nul_unchecked(&self.0[index.start..= ]) } + fn make_ascii_uppercase(&mut self) { + // SAFETY: This doesn't introduce or remove NUL bytes in the C str= ing. + unsafe { to_bytes_mut(self) }.make_ascii_uppercase(); } -} =20 -impl Index for CStr { - type Output =3D CStr; + fn to_ascii_lowercase(&self) -> Result { + let mut s =3D self.to_cstring()?; =20 - #[inline] - fn index(&self, _index: ops::RangeFull) -> &Self::Output { - self + s.make_ascii_lowercase(); + + Ok(s) } -} =20 -mod private { - use core::ops; + fn to_ascii_uppercase(&self) -> Result { + let mut s =3D self.to_cstring()?; =20 - // Marker trait for index types that can be forward to `BStr`. - pub trait CStrIndex {} + s.make_ascii_uppercase(); =20 - impl CStrIndex for usize {} - impl CStrIndex for ops::Range {} - impl CStrIndex for ops::RangeInclusive {} - impl CStrIndex for ops::RangeToInclusive {} + Ok(s) + } } =20 -impl Index for CStr -where - Idx: private::CStrIndex, - BStr: Index, -{ - type Output =3D >::Output; - +impl AsRef for CStr { #[inline] - fn index(&self, index: Idx) -> &Self::Output { - &self.as_ref()[index] + fn as_ref(&self) -> &BStr { + BStr::from_bytes(self.to_bytes()) } } =20 @@ -612,6 +402,13 @@ macro_rules! c_str { mod tests { use super::*; =20 + impl From for Error { + #[inline] + fn from(_: core::ffi::FromBytesWithNulError) -> Error { + EINVAL + } + } + macro_rules! format { ($($f:tt)*) =3D> ({ CString::try_from_fmt(fmt!($($f)*))?.to_str()? @@ -634,40 +431,28 @@ macro_rules! format { =20 #[test] fn test_cstr_to_str() -> Result { - let good_bytes =3D b"\xf0\x9f\xa6\x80\0"; - let checked_cstr =3D CStr::from_bytes_with_nul(good_bytes)?; - let checked_str =3D checked_cstr.to_str()?; + let cstr =3D c"\xf0\x9f\xa6\x80"; + let checked_str =3D cstr.to_str()?; assert_eq!(checked_str, "=F0=9F=A6=80"); Ok(()) } =20 #[test] fn test_cstr_to_str_invalid_utf8() -> Result { - let bad_bytes =3D b"\xc3\x28\0"; - let checked_cstr =3D CStr::from_bytes_with_nul(bad_bytes)?; - assert!(checked_cstr.to_str().is_err()); - Ok(()) - } - - #[test] - fn test_cstr_as_str_unchecked() -> Result { - let good_bytes =3D b"\xf0\x9f\x90\xA7\0"; - let checked_cstr =3D CStr::from_bytes_with_nul(good_bytes)?; - // SAFETY: The contents come from a string literal which contains = valid UTF-8. - let unchecked_str =3D unsafe { checked_cstr.as_str_unchecked() }; - assert_eq!(unchecked_str, "=F0=9F=90=A7"); + let cstr =3D c"\xc3\x28"; + assert!(cstr.to_str().is_err()); Ok(()) } =20 #[test] fn test_cstr_display() -> Result { - let hello_world =3D CStr::from_bytes_with_nul(b"hello, world!\0")?; + let hello_world =3D c"hello, world!"; assert_eq!(format!("{hello_world}"), "hello, world!"); - let non_printables =3D CStr::from_bytes_with_nul(b"\x01\x09\x0a\0"= )?; + let non_printables =3D c"\x01\x09\x0a"; assert_eq!(format!("{non_printables}"), "\\x01\\x09\\x0a"); - let non_ascii =3D CStr::from_bytes_with_nul(b"d\xe9j\xe0 vu\0")?; + let non_ascii =3D c"d\xe9j\xe0 vu"; assert_eq!(format!("{non_ascii}"), "d\\xe9j\\xe0 vu"); - let good_bytes =3D CStr::from_bytes_with_nul(b"\xf0\x9f\xa6\x80\0"= )?; + let good_bytes =3D c"\xf0\x9f\xa6\x80"; assert_eq!(format!("{good_bytes}"), "\\xf0\\x9f\\xa6\\x80"); Ok(()) } @@ -686,13 +471,13 @@ fn test_cstr_display_all_bytes() -> Result { =20 #[test] fn test_cstr_debug() -> Result { - let hello_world =3D CStr::from_bytes_with_nul(b"hello, world!\0")?; + let hello_world =3D c"hello, world!"; assert_eq!(format!("{hello_world:?}"), "\"hello, world!\""); - let non_printables =3D CStr::from_bytes_with_nul(b"\x01\x09\x0a\0"= )?; - assert_eq!(format!("{non_printables:?}"), "\"\\x01\\x09\\x0a\""); - let non_ascii =3D CStr::from_bytes_with_nul(b"d\xe9j\xe0 vu\0")?; + let non_printables =3D c"\x01\x09\x0a"; + assert_eq!(format!("{non_printables:?}"), "\"\\x01\\t\\n\""); + let non_ascii =3D c"d\xe9j\xe0 vu"; assert_eq!(format!("{non_ascii:?}"), "\"d\\xe9j\\xe0 vu\""); - let good_bytes =3D CStr::from_bytes_with_nul(b"\xf0\x9f\xa6\x80\0"= )?; + let good_bytes =3D c"\xf0\x9f\xa6\x80"; assert_eq!(format!("{good_bytes:?}"), "\"\\xf0\\x9f\\xa6\\x80\""); Ok(()) } diff --git a/rust/kernel/sync/condvar.rs b/rust/kernel/sync/condvar.rs index c6ec64295c9f..a24e25a690ee 100644 --- a/rust/kernel/sync/condvar.rs +++ b/rust/kernel/sync/condvar.rs @@ -8,7 +8,7 @@ use super::{lock::Backend, lock::Guard, LockClassKey}; use crate::{ ffi::{c_int, c_long}, - str::CStr, + str::{CStr, CStrExt as _}, task::{ MAX_SCHEDULE_TIMEOUT, TASK_FREEZABLE, TASK_INTERRUPTIBLE, TASK_NOR= MAL, TASK_UNINTERRUPTIBLE, }, diff --git a/rust/kernel/sync/lock.rs b/rust/kernel/sync/lock.rs index 27202beef90c..5d7991e6d373 100644 --- a/rust/kernel/sync/lock.rs +++ b/rust/kernel/sync/lock.rs @@ -7,7 +7,7 @@ =20 use super::LockClassKey; use crate::{ - str::CStr, + str::{CStr, CStrExt as _}, types::{NotThreadSafe, Opaque, ScopeGuard}, }; use core::{cell::UnsafeCell, marker::PhantomPinned, pin::Pin}; diff --git a/rust/kernel/sync/lock/global.rs b/rust/kernel/sync/lock/global= .rs index d65f94b5caf2..79d0ef7fda86 100644 --- a/rust/kernel/sync/lock/global.rs +++ b/rust/kernel/sync/lock/global.rs @@ -5,7 +5,7 @@ //! Support for defining statics containing locks. =20 use crate::{ - str::CStr, + str::{CStr, CStrExt as _}, sync::lock::{Backend, Guard, Lock}, sync::{LockClassKey, LockedBy}, types::Opaque, --=20 2.51.0.915.g61a8936c21-goog