From nobody Sun Feb 8 22:58:19 2026 Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53]) (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 EF02E1531C1 for ; Wed, 28 Jan 2026 23:33:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769643228; cv=none; b=LylG0FgOqBveipzu7MD89opXE7ihfk3nEskla1W6CjWHNlYuTPB8pVXaOIwvEo2zOm/i/9pjDxiR1G1g6JTgLHWv2V+2NcX+UhmL14E3wOKOk2v1T3MXiOjdeiCHiBZbVP97G7dXS1H46ZpQvMfw6tquPep6Pq36QlG+/ZqNlXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769643228; c=relaxed/simple; bh=D8IHOpzdpv4jpNHqY+5RxyIP01Gxc9I18RznU79aOOY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SPMDrrnVcYkXJVslhk6cUKMD/10o525Xqi6oSDr3w+V67Z2ODPmvxVOtX241rZt4DEPbjinz0GoMxalpqzwLpxG1x4mCAsfUpOFmREgGLWGOKklu9s51N+m2GsXDZR/aW1uywL3POkxpwF91hteXUXdQZ5Q0fBLwZKiga0ZAkhY= 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=ip1bJtV+; arc=none smtp.client-ip=209.85.217.53 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="ip1bJtV+" Received: by mail-vs1-f53.google.com with SMTP id ada2fe7eead31-5eeff7e8bb3so310764137.1 for ; Wed, 28 Jan 2026 15:33:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769643226; x=1770248026; 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=5K4fiuuxH7TZZ5P2nOc2at3WjKzG7Xg5l87CzajWOME=; b=ip1bJtV+llFVgpi0DEKQa912HpttAAy1P5nrN4uzVkOzaBajOQ5L6GaOXMpJukV3Lz 7Xhdu7vOiek7A0t1IuXxFQfiiUgr5y32csU/3mvjlhmBLhZHDi5fMWDyL88F2c/rN8Cv /3a2KfkqCHKdOTJaoUxHxHG3a3YBS0aKbJtS4PES9sYUFKzOP/BvKRYMcKuvjPu7ouLU fNyDiZyJ4fS7vd0Ykm53aahnbGdrSngIjZROKBvsKLPHClp0YVeVsZiZq4zK2uJnHVRX AQSH5GDmXzhZrpDPsv0kKfDd1vusXVOXaC/qKBIN1TLo+3p9PdTXqICCHnt1Ftn1X846 20Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769643226; x=1770248026; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5K4fiuuxH7TZZ5P2nOc2at3WjKzG7Xg5l87CzajWOME=; b=vGmE+246We+BptFUNv2j5w+1R75ave1KAPr3MVcZ44ZhhdoDAAnTxHCkMHqxRdvupI GAnLqjHKgQkEly36xE+BzxoWLPeqlEU5N9ta6HuQTZrfwLES56+jMTA3jL+u7nP112vh j/o+JZPGkTbvpHiyzzyB1raau5S5PmWkRroDHSrSfmLfbTWRbI//fGFwSIPCoRfbterL vi6J76bkeKcom0r+j754Bh68Ye+NVZl8cYWc0hMbo5P/m0j+Dhw4CfpdLD4Nm+9npZWy ZmlwMXnCSSV3oThAwebBoTrDYg5OP3dbrq+FJheRjpqFiEC54EfTCFJZd8QDr1G4la70 j3AA== X-Gm-Message-State: AOJu0YwEa7rFPdKGMcqntxqMA/sBIA9U8ItWcG7EPUFxPOtDr7yCosoA IQ76HBa6vQB5edLLMKr4xS4+x2Kq5Vhz8vhSoNeSU5ODueRqh0+NAmrxHArGJg== X-Gm-Gg: AZuq6aKMWYFjHPYHTEr2/oL/CvONn2Ajr/rpZsgS7SniFRoRcLXMBXc78PPyk7eqK92 8uoqq7jq1gTGlPQ6GSnEWgB7F3FaW4EpgTMzaKuW5T3DbcIR485SFxqh0pB0ADdo/JJdsDxV6oN onHo02I/0B/tR6WFOLZ3Ac1V/nCJAE6jH3zoHuWHtiSoaKac0kwBrmqXRpn6qxBtw7WWm56n+bS tdZ5qSkua1w2pD+U03CBfsorMo+GUz2ox2fi0fCx7N/peGAn/Ahnx5q9yvV5KZaSpn7rCSsXQ8M Jls9AC1DQzbYluHZRq6ua6okuNRtJjCpxghj7k3Go4nbw0cU7uDbCA+rhb/v0XGWXq4LwKKovVP pSs1kL/JrykN8A0on6f2jeuOBPiMN/3nwFILSaG7gOZdBa9zM+fmyjE1HamuUSP7M0VqTPtEFDU vOWFve+oH6egMf+CbOf1davM9WTOh5InAwdKi2zGrMokqiSsD1pjZ0tdgBz8lM1A9clPZW/V2Fw Mp5DLaZXhDFO0c= X-Received: by 2002:a05:620a:1a9d:b0:8b2:ea2b:923c with SMTP id af79cd13be357-8c70b84a575mr922371985a.14.1769637222303; Wed, 28 Jan 2026 13:53:42 -0800 (PST) Received: from fauth-a1-smtp.messagingengine.com (fauth-a1-smtp.messagingengine.com. [103.168.172.200]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8c711b7ba79sm256119785a.11.2026.01.28.13.53.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 13:53:41 -0800 (PST) Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfauth.phl.internal (Postfix) with ESMTP id F1F6CF4006C; Wed, 28 Jan 2026 16:53:40 -0500 (EST) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Wed, 28 Jan 2026 16:53:40 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduieeggeehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepuehoqhhunhcu hfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrihhlrdgtohhmqeenucggtffrrghtth gvrhhnpeegleejiedthedvheeggfejveefjeejkefgveffieeujefhueeigfegueehgeeg gfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsoh hquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdeiledvgeehtdeigedq udejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhlrdgtohhmsehfihigmh gvrdhnrghmvgdpnhgspghrtghpthhtohepgedvpdhmohguvgepshhmthhpohhuthdprhgt phhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehruhhsthdqfhhorhdqlhhinhhugiesvhhgvghrrdhkvghrnhgvlhdrohhr ghdprhgtphhtthhopehrtghusehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epghhrvghgkhhhsehlihhnuhigfhhouhhnuggrthhiohhnrdhorhhgpdhrtghpthhtohep rghrvhgvsegrnhgurhhoihgurdgtohhmpdhrtghpthhtohepthhkjhhoshesrghnughroh hiugdrtghomhdprhgtphhtthhopegsrhgruhhnvghrsehkvghrnhgvlhdrohhrghdprhgt phhtthhopegtmhhllhgrmhgrshesghhoohhglhgvrdgtohhmpdhrtghpthhtoheprghlih gtvghrhihhlhesghhoohhglhgvrdgtohhm X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 28 Jan 2026 16:53:40 -0500 (EST) From: Boqun Feng To: linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, rcu@vger.kernel.org Cc: Greg Kroah-Hartman , =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Todd Kjos , Christian Brauner , Carlos Llamas , Alice Ryhl , Miguel Ojeda , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , FUJITA Tomonori , Lyude Paul , Thomas Gleixner , Anna-Maria Behnsen , John Stultz , Stephen Boyd , "Yury Norov (NVIDIA)" , Vitaly Wool , Tamir Duberstein , Viresh Kumar , Daniel Almeida , Mitchell Levy , David Gow , Peter Novak , =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Subject: [RFC PATCH 5/7] rust: sync: Completion: Replace `impl_has_work!` with `#[derive(HasField)]` Date: Wed, 28 Jan 2026 13:53:28 -0800 Message-ID: <20260128215330.58410-6-boqun.feng@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260128215330.58410-1-boqun.feng@gmail.com> References: <20260128215330.58410-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" `#[derive(HasField)]` offers less code and better ergnomic for defining a struct with a Work in it. Hence replace the current usage of `impl_has_work!()`. Signed-off-by: Boqun Feng --- rust/kernel/sync/completion.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/rust/kernel/sync/completion.rs b/rust/kernel/sync/completion.rs index c50012a940a3..c4af58924fe3 100644 --- a/rust/kernel/sync/completion.rs +++ b/rust/kernel/sync/completion.rs @@ -17,20 +17,18 @@ /// /// ``` /// use kernel::sync::{Arc, Completion}; -/// use kernel::workqueue::{self, impl_has_work, new_work, Work, WorkItem}; +/// use kernel::workqueue::{self, new_work, Work, WorkItem}; /// +/// #[derive(HasField)] /// #[pin_data] /// struct MyTask { /// #[pin] +/// #[field] /// work: Work, /// #[pin] /// done: Completion, /// } /// -/// impl_has_work! { -/// impl HasWork for MyTask { self.work } -/// } -/// /// impl MyTask { /// fn new() -> Result> { /// let this =3D Arc::pin_init(pin_init!(MyTask { --=20 2.50.1 (Apple Git-155)