From nobody Sat Feb 7 17:48:50 2026 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) (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 507A827815E for ; Wed, 22 Oct 2025 03:53:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105213; cv=none; b=JLca+FKv2kJIqVdQF+SsO+ZRgnhbJ3K80EnVhZnANi+eRGL0SPZe08zq5pnRUY6H8UfYgFOMrPeH9yV0KnsBBAUFn0gBB5cHa3mbUOQwgGcdCEZYJwPTrWWPPl1nkSPcZQ84XUXm3fF2RrDlypV9ZSrDsgOU+ca9cuayeHqDMu8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105213; c=relaxed/simple; bh=zRhiH32I56VyWPe4Fr72V2VjcJ/u5/dW/hqk4y0Gk6E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qljMroVENY8qaxgTuZNCL/E2PS7iOMvsvc1ezp8fh3eRPyh4oPx0/3bg9Qasnj5FTja2mAjs05Zl+WlSH5d9VUGnMHp658O3PZmAIL39Wa1OsH0Hqe2B8T0FxXZMd95XYLHFexUHY4AnTbq2xYNoj3V9MjKoL4Pv1QRN769cYU0= 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=aSJDqhVT; arc=none smtp.client-ip=209.85.160.171 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="aSJDqhVT" Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-4e89d2eaca9so4311401cf.1 for ; Tue, 21 Oct 2025 20:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761105211; x=1761710011; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=aRIdLyiAYODA3K+N158OGoOrRxM49M7T/gctII9qTo4=; b=aSJDqhVThFGaKPF93EFguOfCVn6OPZIeHfDJDeqNP6wGDr9v5z/ha8IqJxtlV6/PmS ETzz53ZzfAl6c4bSGlkp65omaW5CuvxcIS/+s6OsVJXZlwMuYsWzWtQ80nDXM+wV3UnA J2zA6rbKcGO9TYoOv/YPVwgg7Ujk+5dQbUfAu2z3vn6H60ALB2yA4zdRhknxRPHKG3j1 Z6FdI19/OgBYGsX0dvAa9WF44ZGswueOD2pLTO0s00XwWKFkAz7ojtjFUUKlkxhSwF6F ioNZIXTkUJ3/qcTlWVBX/atoQXqhb23A/lhWJXRMk+cbI+jqSLqE9VCIuif1yMyt5q36 sP2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761105211; x=1761710011; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aRIdLyiAYODA3K+N158OGoOrRxM49M7T/gctII9qTo4=; b=dHk65318pO+J95Fi6vvrkHhcnn/h6yh3cjcR7JfmBMzYwvXrGcEnVp5lVEfH4TgaWH Eo2gAFqMjG5m14C4oWx6d4OUuKPUOj3dTdUQQw9yb/jra+EED3V99W1OXHjSmPHchEMK 4htZnUMfD2Kx1BXa1no9w+aKw6VpW+PMZD2UCiyTiBRe7ZHNeMM6WJ3HMXrgeh8uP6i5 iTT2OrI1GJmI3KgKcl78tICethRlxjeME2YPjcn+O4l3ZvpWQ2LfoEMJ7S+a4ac8ws0l K3zTLQMJi2rTCge0Og0gTiih2mJqVabCHjQji9O/SVP0EFGOCPzLZRMNxSFU3HeDMzbJ O1+Q== X-Forwarded-Encrypted: i=1; AJvYcCWEc3iGw2tz8KlRi28AI0ctAKoVf4zfvhLaN5bph5CCbWdz5NON+fHqaCcsfgrv38KgfwmuUswdRH96HlY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywq5MnKrmDic/HijsolV0u0lqnCMUBJgFFPproaxSkksol/lRBf 7NyLVG/XQHcGj9M2J9G4FUeCCOHM5jsNaKV3FboNAV6oUA2mF/kYwOHI X-Gm-Gg: ASbGncv+8hdvNmlDR18g0FWn4leGoPQvbsPqAnE1+QH/QMmq7H7Q/wbSzAbhxZKO6qz +1DgOBVvUzEyQqeZhzYegTG/KFd/vzPPURBzpZ5v1AIHtTnklhdVs0DsSBW6Fi+Qp/qFYMhNETk R0kXn8kWXf831yMdQ7EKaww4arSvBu0IoqPXYnFSwsXSA+QkLVFVE7LmQZcjgu2lwgAtxT+g/pB LvY2Z3acUnIXEbtFbFEIfRI2usYoBCEnMGB3oupTO+nqgSBhqpIaGS4R8kEa5D/m7kI4v1v0GRn gATBhp2lLdhBRcGvofViWp0PgC88ffNmDmkzXlLBixzguoiP+M04apxcRE3scGk3CN2uE9pQ0Ed ieUjqkxzDL82qJp3KCTKCI3/gylAsY19Srzu//yUgkqoBMEmZroLzBv1TgzaZKIjo81gUxXDyEs ZXm+k7C8aBWMm8exEFyT/N0F0p+oBrO/2W472YwJ4g9qPoZcFh98qOINrgDTl3vv4z4Gi6I2c69 0P6 X-Google-Smtp-Source: AGHT+IECF1DqbaKjt3jBSiLByYMx6gIODb85sVZjrsUQCnbvlPh0n5LlJOdNuvj3bJWC4J0vcRT82A== X-Received: by 2002:a05:622a:14f:b0:4cd:601e:9d29 with SMTP id d75a77b69052e-4e89d20a473mr247846131cf.11.1761105211194; Tue, 21 Oct 2025 20:53:31 -0700 (PDT) Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4e8ab0f3b1dsm85523651cf.32.2025.10.21.20.53.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Oct 2025 20:53:30 -0700 (PDT) Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id 0FE27F40069; Tue, 21 Oct 2025 23:53:30 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Tue, 21 Oct 2025 23:53:30 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddugedvheehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepuehoqhhunhcu hfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmqeenucggtffrrghtth gvrhhnpeegleejiedthedvheeggfejveefjeejkefgveffieeujefhueeigfegueehgeeg gfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsoh hquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdeiledvgeehtdeigedq udejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhlrdgtohhmsehfihigmh gvrdhnrghmvgdpnhgspghrtghpthhtohepudekpdhmohguvgepshhmthhpohhuthdprhgt phhtthhopehruhhsthdqfhhorhdqlhhinhhugiesvhhgvghrrdhkvghrnhgvlhdrohhrgh dprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhr ghdprhgtphhtthhopehgrhgvghhkhheslhhinhhugihfohhunhgurghtihhonhdrohhrgh dprhgtphhtthhopehrrghfrggvlheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepuggr khhrsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehojhgvuggrsehkvghrnhgvlhdroh hrghdprhgtphhtthhopegrlhgvgidrghgrhihnohhrsehgmhgrihhlrdgtohhmpdhrtghp thhtohepsghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmpdhrtghpthhtohepghgrrh ihsehgrghrhihguhhordhnvght X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 21 Oct 2025 23:53:29 -0400 (EDT) From: Boqun Feng To: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Will Deacon , Peter Zijlstra , Mark Rutland , Matthew Maurer Subject: [PATCH 1/3] rust: sync: atomic: Make Atomic*Ops pub(crate) Date: Tue, 21 Oct 2025 23:53:22 -0400 Message-ID: <20251022035324.70785-2-boqun.feng@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251022035324.70785-1-boqun.feng@gmail.com> References: <20251022035324.70785-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In order to write code over a generate Atomic we need to make Atomic*Ops public so that functions like `.load()` and `.store()` are available. Make these pub(crate) at the beginning so the usage in kernel crate is supported. Signed-off-by: Boqun Feng Acked-by: Greg Kroah-Hartman --- rust/kernel/sync/atomic.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/kernel/sync/atomic.rs b/rust/kernel/sync/atomic.rs index 016a6bcaf080..0bc6e7b04d67 100644 --- a/rust/kernel/sync/atomic.rs +++ b/rust/kernel/sync/atomic.rs @@ -22,9 +22,10 @@ =20 pub use internal::AtomicImpl; pub use ordering::{Acquire, Full, Relaxed, Release}; +pub(crate) use internal::{AtomicArithmeticOps, AtomicBasicOps, AtomicExcha= ngeOps}; =20 use crate::build_error; -use internal::{AtomicArithmeticOps, AtomicBasicOps, AtomicExchangeOps, Ato= micRepr}; +use internal::AtomicRepr; use ordering::OrderingType; =20 /// A memory location which can be safely modified from multiple execution= contexts. --=20 2.51.0 From nobody Sat Feb 7 17:48:50 2026 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (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 B66F82D47E6 for ; Wed, 22 Oct 2025 03:53:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105214; cv=none; b=BUf9WP1u2t0GBUkzKxMunxB8qWxlX6ARbF4xZXDl6pvLYLdBB0VzimbpWv/3jz+sjgwGNBu7RqXYfffzeJNdsfPeCHYmHcrTiDg1t5VzaJHh4fQa4zV8HIQlpFqCiCOlK0xHB0sDFVQgUZRnYpuNrFAth+CHg/IL2jthKyfZveg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105214; c=relaxed/simple; bh=NEOZ5UcQs9qWpUuFkJ3z//mwBi0OwNepB3WYde0vNFY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VSVZpASskdIBA4KFgyLTZhRVB9BfwDlZZ1eKJmh2ziZyMf2yoJrNQ9ixLbLjCiFjNWou3tqzALREL4TOExRB7o0dK2qltaiSR9iX02J2RFDVkZ4KAo6kVb41h3viyBpMw6cUMyj9mtWJJOGvGrwwF23aEyJrOu0dA99Op9vK2lM= 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=lb9qpOFo; arc=none smtp.client-ip=209.85.222.173 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="lb9qpOFo" Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-88e1a22125bso836998685a.2 for ; Tue, 21 Oct 2025 20:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761105211; x=1761710011; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=UNHVbXF1l9vxAaVojg+MHbup3Odhk55doJucb7FZw8c=; b=lb9qpOFoMKxxvDU4kP2Xljs56ANwI2kLj3ULkO10gL15qT8/9URJsJ3zRtQcRbEXe/ H3lJrXXk9WOX5ouyDXoqNDeW8hUnUt05D0kNc6y2niNZqOmIUKtkswmX+pB2ZAlMY50d Dl7zA97nRIDTFBVlt6thvNP4259KlpqxDxOG+1xV80XYYKDRKVwGXznGpwt9W2P3lDZM y15dbMVNx8ABa+0q7fZhAtl8ekF2BX8aY8WMrCWBWA9/H4eUmOIG2iFb03NdQUiFGZ7u maLNo6g0IUTURjt6BilwkSicepq8+hbC9dAvuKF4YS0QdR3xyEPcgBwjFtqGBma89/82 5Pfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761105211; x=1761710011; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=UNHVbXF1l9vxAaVojg+MHbup3Odhk55doJucb7FZw8c=; b=cAtmYgjsGyBWsxagbVGiol/EvmAkFlfqeBoiwS4a5IZAqUlrH/a0QkoH4MNk11oH0E M2bl/MX6ULk6jth9r/xzb4pg0yBZyfnIaGqGZ2IUk2c97tpKUQJAHGrADRZSEtoMxqIe 9Gzaft+h829RI/aKSCmkylI/YxON6hQz+lofLPU/eOIidWNN90JFp0tQn+MQY3/lgR/f dVkKFYjgfiypk76KBXJw6VqJUN5wp55KVTrksqClvUlp6amwBTb7khjkpp4l5fvO+aSf +xXFcDmeyy91wyvYwHDXnIxdGQb+n/sGxFevkag3ThpQXHfvKshohgE/vvvLkxPJsLNW vfAA== X-Forwarded-Encrypted: i=1; AJvYcCX0dS9bjKsh1iXa0v1VvR13kKmrXynFhlCdc6JKN0PjYZXlSEGR7HZT+YHUUtZMCPkn7bo4mptHI29svg4=@vger.kernel.org X-Gm-Message-State: AOJu0YzU0/ed7bYeigKSSemu6t0SYBRvmouIqxn6AanZULqSDCni2PZQ WbyjZE+s/xiyP+pzA8A9JYvNRMzPjdyLOfARaapUYDZM2TVtAy/EN87X X-Gm-Gg: ASbGncs+ciOVyEAxpqSaYcCs/+adqTL6QrTKB/iYT2K4ewYo7d3SC4GwCJkivrve4a0 Hjam0YM30cygotbwEAGHKROoy7V+AM4iFyY4igvNjw0kFRzYBxlkRfAbmtF9YMLOMZsluugSjpj keSqqmTZTpgORI0bch95w6SEVJVQXP+PYDNPP+2Vnhux0CRcYfYhqDCabDU7sdSrcqUMPccR4fL 3Zd9orii4LHcvcGCsR1TCgWpICUBvC3q5FcKOoU7qKPvScbH3/hvAAuX77GDt+I3Ns8IjGtWDdp QzG0vVQMU//6tSHmSpkSXeFAu1cmRLhVDzei2axoBelwqraTUC39ZjK5bqvpvtX1I5xflEuP/On M5TJGSF0Ad3m9uTK29o03smBg7o2QP010xvU9dW4Or95UtR85Z1IoZ0ixm2PaWVBjGKOG4iTXE7 GQYy/OCSySGJbn7bcxmiXzV779PJqylgMx+1/+JUON/Q0zOzg1y/NwsGXWCiNAL2d9DPZkWC71M ZY05IqiUxGiLPvsU2NViufxdg== X-Google-Smtp-Source: AGHT+IEK23rEbmImZjUjZqknwOE+XDHmtcXPf1FHlW5w+b2oVQdPahRq4eJRmv3aAqYbsDBgGjL/aQ== X-Received: by 2002:a05:620a:2886:b0:863:696d:e37a with SMTP id af79cd13be357-8907030c838mr2419098085a.44.1761105211504; Tue, 21 Oct 2025 20:53:31 -0700 (PDT) Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id af79cd13be357-891cefba763sm890414985a.30.2025.10.21.20.53.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Oct 2025 20:53:31 -0700 (PDT) Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfauth.phl.internal (Postfix) with ESMTP id 9DF95F40068; Tue, 21 Oct 2025 23:53:30 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Tue, 21 Oct 2025 23:53:30 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddugedvheehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepuehoqhhunhcu hfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmqeenucggtffrrghtth gvrhhnpeegleejiedthedvheeggfejveefjeejkefgveffieeujefhueeigfegueehgeeg gfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsoh hquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdeiledvgeehtdeigedq udejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhlrdgtohhmsehfihigmh gvrdhnrghmvgdpnhgspghrtghpthhtohepudekpdhmohguvgepshhmthhpohhuthdprhgt phhtthhopehruhhsthdqfhhorhdqlhhinhhugiesvhhgvghrrdhkvghrnhgvlhdrohhrgh dprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhr ghdprhgtphhtthhopehgrhgvghhkhheslhhinhhugihfohhunhgurghtihhonhdrohhrgh dprhgtphhtthhopehrrghfrggvlheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepuggr khhrsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehojhgvuggrsehkvghrnhgvlhdroh hrghdprhgtphhtthhopegrlhgvgidrghgrhihnohhrsehgmhgrihhlrdgtohhmpdhrtghp thhtohepsghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmpdhrtghpthhtohepghgrrh ihsehgrghrhihguhhordhnvght X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 21 Oct 2025 23:53:30 -0400 (EDT) From: Boqun Feng To: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Will Deacon , Peter Zijlstra , Mark Rutland , Matthew Maurer Subject: [PATCH 2/3] rust: sync: atomic: Implement Debug for Atomic Date: Tue, 21 Oct 2025 23:53:23 -0400 Message-ID: <20251022035324.70785-3-boqun.feng@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251022035324.70785-1-boqun.feng@gmail.com> References: <20251022035324.70785-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If `Atomic` is `Debug` then it's a `debugfs::Writer`, therefore make it so since 1) debugfs needs to support `Atomic` and 2) it's rather trivial to implement `Debug` for `Atomic`. Signed-off-by: Boqun Feng Acked-by: Greg Kroah-Hartman --- rust/kernel/sync/atomic.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rust/kernel/sync/atomic.rs b/rust/kernel/sync/atomic.rs index 0bc6e7b04d67..3afc376be42d 100644 --- a/rust/kernel/sync/atomic.rs +++ b/rust/kernel/sync/atomic.rs @@ -307,6 +307,15 @@ pub fn store(&se= lf, v: T, _: Ordering) { } } =20 +impl core::fmt::Debug for Atomic +where + T::Repr: AtomicBasicOps, +{ + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + core::fmt::Debug::fmt(&self.load(Relaxed), f) + } +} + impl Atomic where T::Repr: AtomicExchangeOps, --=20 2.51.0 From nobody Sat Feb 7 17:48:50 2026 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) (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 32526350A21 for ; Wed, 22 Oct 2025 03:53:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105215; cv=none; b=cikEmssbsM29dHDMABtZ2AtU3ddjxgBxkiqpVhIH4K62lhu6NYuYynJ08NWD+8iONQ432ul/pMFbnlDUEIYWvD9R1iqGlx+16lvVVx31Ek4h36mKXq6DA1Y/F5jUjE9QCdomKyBLWc89Qt80mj7ZzKy0pc8sBP7XNktj0rBY460= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761105215; c=relaxed/simple; bh=4SXBTIbBzQS7trSo3Pqcoy4S5AvvRzAQgPXHxuFH5Cg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VwLy88+N5jNIbRgCMgVSqkf+19SyYEShWzZAWbKSSlZSufdOWYYMVW31aOWNIMZKThnWpf52FLEaeM4GZVrTMpbMyOzF+7qKcyoDCa5wEgYnTF1hQT55wwkPZpYs1Lhw1tqWCwCDnzoHxpeYhssG8ZRnDIGARodgGjhIfDg4ck8= 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=MwEXPuui; arc=none smtp.client-ip=209.85.160.171 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="MwEXPuui" Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-4e883b79269so8853031cf.1 for ; Tue, 21 Oct 2025 20:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761105212; x=1761710012; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=xwi9pPyT3FBFmVEwx3v/HgUNb6syohg1ynYObmMc1N4=; b=MwEXPuuiRJB2H3OGzGoZOBhDQ3eVLvBNA/noov/zNRvmizc+WVjJ1UcuMkDByyXMVQ CXe/zJwAY1yxv2mIhhIFy5zkJ4Rzbcd9Dn/kwgdSjdlaS9mDk4K4OMu0wXlHALBTOGQw a4NKOK6lGG2GSjUVHKMTsAGXoD1gL84no9X9x9BgjSVO3ugmRT8yf/HpOjaswqzZQaSW +Xqp15e0c6uVK3YHGSNZXf6du62ZkqjpiIE4OqPAyjt3VRDYOnoU3wBqfEKCytQbM7+R yW3sV+Xr9elMQqPwOtIxk/qOJCefP48vhAJRHVb62H3wQmvQB2Hdu+1zfn3eJW+RshSy Vhkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761105212; x=1761710012; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=xwi9pPyT3FBFmVEwx3v/HgUNb6syohg1ynYObmMc1N4=; b=ht5d3VfJmR1sQ/f8b9Em5oPZWLO1RFCGHxReMvhLSK69WW4XQ2F4Vrq9lOLfeRA1rx Zg91XKbiv59M53Y1GnQKMXtrUiVVRkpjJJXUAbsMX3P37m5r+MAb67E/yAvehOC5vltg FjcvkFW8or84Nf8mLxlP/QZ5boW/Xjc9mIugaSZEXWJjKOitR5nTKBd6ivXyG4vkr9Dq V5Wi1qzWDGa6Kg+T8OTb59/KAIzeMf9gZZMaU/EBhDaAuLBNAaM35/LFc5Frw8uIXpel 8Z1cR4Z3nnnncw6lhUHwegW+gu8XNj7raavLsjfWMyZGtRuCqxJnOuHnp/GX8cYU5F5j 89yA== X-Forwarded-Encrypted: i=1; AJvYcCWAkzvpBf0uo8NwRffWalz/fg8jcRct4a6cU+NzY2SVwWmIjQ/assD4oVtwx15uSkKy1ss1KnGHwEn8qr4=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/PWiQClE5/Pdn0awJYkTfk2/rCXGxZS+d64iX7AtBq3T24ub0 bWwJsmSOA7Z1+5FSrxGEZN3L/ekqABtmTFLG3haC7EC01QMX6bRs32HO X-Gm-Gg: ASbGncvEMLPMOfsw/oB8x78s8LqKgssVJIOWeqsLjV6JAszsC6/vRGrwZnhsSqXFzz6 W3DOgYQaA8dVZv9SQhwVu9FV9eN16EIA/joQnt9gn1PG36w3ps5Ghb8ecMfhRcqF2oAFOXRbGUY W6vUiDIC9ed4MRxl9V3GExUJR+EjOkTiS6GviF7LXQsINrnHZxhyYHNaNh2Bq+OToa3icMwFyr9 r4sOKcGLCJQPqotyzVIjMjcn8/UJtBWSB/xbt/XLh2a8txBDcrEwYmpZ1pQnBPmaL+NaXoC8MOH cTOaHdChD1VZYQO6ceGnNKc32adxaWlKKm2sEkBWtqEbvJCse9K0OhFfP6W4h6dXmJnKaFBxtrh iBqcCsauz+B9ZCKjE24ZiLh+HOB2KoNSJCDJPERWICpY34W4sgIm0Qd/qYegkNjZa5WKFYLJXEG LOiJf4ORg83AhcNQKtqFAGvV1DeRKv5uSVqHcAahNGv+7+z3rbZcKS0WVDVKEtphHc40tiMMrmA 0zM8wC6NUqYrHk= X-Google-Smtp-Source: AGHT+IG/XJvd2aOX62N44Ph9hXSKDu373P+gXBwGZnNsgjDS/EyXbwt2p1XlwMEDfnCDOu06g6jH/g== X-Received: by 2002:ac8:4659:0:b0:4e8:a0bf:f5b5 with SMTP id d75a77b69052e-4e8a0bff828mr177242851cf.73.1761105212020; Tue, 21 Oct 2025 20:53:32 -0700 (PDT) Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id af79cd13be357-891cd098591sm897850385a.15.2025.10.21.20.53.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Oct 2025 20:53:31 -0700 (PDT) Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfauth.phl.internal (Postfix) with ESMTP id 39F10F4006A; Tue, 21 Oct 2025 23:53:31 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Tue, 21 Oct 2025 23:53:31 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddugedvheehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepuehoqhhunhcu hfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmqeenucggtffrrghtth gvrhhnpeegleefhedtieefiedufeehhfevueejheefhefghfehfeevjedvveefhfetudet veenucffohhmrghinheptghouhhnthgvrhdrshhtohhrvgdpphgrrhhsvgdrmhgrphenuc evlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsohhquhhn odhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdeiledvgeehtdeigedqudejje ekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhlrdgtohhmsehfihigmhgvrdhn rghmvgdpnhgspghrtghpthhtohepudekpdhmohguvgepshhmthhpohhuthdprhgtphhtth hopehruhhsthdqfhhorhdqlhhinhhugiesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgt phhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehgrhgvghhkhheslhhinhhugihfohhunhgurghtihhonhdrohhrghdprhgt phhtthhopehrrghfrggvlheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepuggrkhhrse hkvghrnhgvlhdrohhrghdprhgtphhtthhopehojhgvuggrsehkvghrnhgvlhdrohhrghdp rhgtphhtthhopegrlhgvgidrghgrhihnohhrsehgmhgrihhlrdgtohhmpdhrtghpthhtoh epsghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmpdhrtghpthhtohepghgrrhihsehg rghrhihguhhordhnvght X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 21 Oct 2025 23:53:30 -0400 (EDT) From: Boqun Feng To: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Will Deacon , Peter Zijlstra , Mark Rutland , Matthew Maurer Subject: [PATCH 3/3] rust: debugfs: Replace the usage of Rust native atomics Date: Tue, 21 Oct 2025 23:53:24 -0400 Message-ID: <20251022035324.70785-4-boqun.feng@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251022035324.70785-1-boqun.feng@gmail.com> References: <20251022035324.70785-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rust native atomics are not allowed to use in kernel due to the mismatch of memory model with Linux kernel memory model, hence remove the usage of Rust native atomics in debufs. Signed-off-by: Boqun Feng Acked-by: Danilo Krummrich Acked-by: Greg Kroah-Hartman Reviewed-by: Matthew Maurer --- rust/kernel/debugfs/traits.rs | 53 +++++++++-------------------- samples/rust/rust_debugfs.rs | 12 +++---- samples/rust/rust_debugfs_scoped.rs | 6 ++-- 3 files changed, 25 insertions(+), 46 deletions(-) diff --git a/rust/kernel/debugfs/traits.rs b/rust/kernel/debugfs/traits.rs index ab009eb254b3..1bcfb3b3dd2f 100644 --- a/rust/kernel/debugfs/traits.rs +++ b/rust/kernel/debugfs/traits.rs @@ -4,14 +4,11 @@ //! Traits for rendering or updating values exported to DebugFS. =20 use crate::prelude::*; +use crate::sync::atomic::{Atomic, AtomicBasicOps, AtomicType, Relaxed}; 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, - AtomicU8, AtomicUsize, Ordering, -}; =20 /// A trait for types that can be written into a string. /// @@ -66,37 +63,21 @@ fn read_from_slice(&self, reader: &mut UserSliceReader)= -> Result { } } =20 -macro_rules! impl_reader_for_atomic { - ($(($atomic_type:ty, $int_type:ty)),*) =3D> { - $( - impl Reader for $atomic_type { - fn read_from_slice(&self, reader: &mut UserSliceReader) ->= Result { - let mut buf =3D [0u8; 21]; // Enough for a 64-bit numb= er. - if reader.len() > buf.len() { - return Err(EINVAL); - } - let n =3D reader.len(); - reader.read_slice(&mut buf[..n])?; +impl Reader for Atomic +where + T::Repr: AtomicBasicOps, +{ + fn read_from_slice(&self, reader: &mut UserSliceReader) -> Result { + let mut buf =3D [0u8; 21]; // Enough for a 64-bit number. + if reader.len() > buf.len() { + return Err(EINVAL); + } + let n =3D reader.len(); + reader.read_slice(&mut buf[..n])?; =20 - let s =3D core::str::from_utf8(&buf[..n]).map_err(|_| = EINVAL)?; - let val =3D s.trim().parse::<$int_type>().map_err(|_| = EINVAL)?; - self.store(val, Ordering::Relaxed); - Ok(()) - } - } - )* - }; + let s =3D core::str::from_utf8(&buf[..n]).map_err(|_| EINVAL)?; + let val =3D s.trim().parse::().map_err(|_| EINVAL)?; + self.store(val, Relaxed); + Ok(()) + } } - -impl_reader_for_atomic!( - (AtomicI16, i16), - (AtomicI32, i32), - (AtomicI64, i64), - (AtomicI8, i8), - (AtomicIsize, isize), - (AtomicU16, u16), - (AtomicU32, u32), - (AtomicU64, u64), - (AtomicU8, u8), - (AtomicUsize, usize) -); diff --git a/samples/rust/rust_debugfs.rs b/samples/rust/rust_debugfs.rs index 82b61a15a34b..711faa07bece 100644 --- a/samples/rust/rust_debugfs.rs +++ b/samples/rust/rust_debugfs.rs @@ -32,14 +32,12 @@ //! ``` =20 use core::str::FromStr; -use core::sync::atomic::AtomicUsize; -use core::sync::atomic::Ordering; use kernel::c_str; use kernel::debugfs::{Dir, File}; use kernel::new_mutex; use kernel::prelude::*; +use kernel::sync::atomic::{Atomic, Relaxed}; use kernel::sync::Mutex; - use kernel::{acpi, device::Core, of, platform, str::CString, types::ARef}; =20 kernel::module_platform_driver! { @@ -59,7 +57,7 @@ struct RustDebugFs { #[pin] _compatible: File, #[pin] - counter: File, + counter: File>, #[pin] inner: File>, } @@ -109,7 +107,7 @@ fn probe( ) -> Result>> { let result =3D KBox::try_pin_init(RustDebugFs::new(pdev), GFP_KERN= EL)?; // We can still mutate fields through the files which are atomic o= r mutexed: - result.counter.store(91, Ordering::Relaxed); + result.counter.store(91, Relaxed); { let mut guard =3D result.inner.lock(); guard.x =3D guard.y; @@ -120,8 +118,8 @@ fn probe( } =20 impl RustDebugFs { - fn build_counter(dir: &Dir) -> impl PinInit> + '_ { - dir.read_write_file(c_str!("counter"), AtomicUsize::new(0)) + fn build_counter(dir: &Dir) -> impl PinInit>> + '_ { + dir.read_write_file(c_str!("counter"), Atomic::::new(0)) } =20 fn build_inner(dir: &Dir) -> impl PinInit>> + '_ { diff --git a/samples/rust/rust_debugfs_scoped.rs b/samples/rust/rust_debugf= s_scoped.rs index b0c4e76b123e..9f0ec5f24cda 100644 --- a/samples/rust/rust_debugfs_scoped.rs +++ b/samples/rust/rust_debugfs_scoped.rs @@ -6,9 +6,9 @@ //! `Scope::dir` to create a variety of files without the need to separate= ly //! track them all. =20 -use core::sync::atomic::AtomicUsize; use kernel::debugfs::{Dir, Scope}; use kernel::prelude::*; +use kernel::sync::atomic::Atomic; use kernel::sync::Mutex; use kernel::{c_str, new_mutex, str::CString}; =20 @@ -62,7 +62,7 @@ fn create_file_write( let file_name =3D CString::try_from_fmt(fmt!("{name_str}"))?; for sub in items { nums.push( - AtomicUsize::new(sub.parse().map_err(|_| EINVAL)?), + Atomic::::new(sub.parse().map_err(|_| EINVAL)?), GFP_KERNEL, )?; } @@ -109,7 +109,7 @@ fn init(device_dir: Dir) -> impl PinInit { =20 struct DeviceData { name: CString, - nums: KVec, + nums: KVec>, } =20 fn init_control(base_dir: &Dir, dyn_dirs: Dir) -> impl PinInit> + '_ { --=20 2.51.0