Re: [PATCH] rust: sync: completion: mark inline complete_all and wait_for_completion
From: Gary Guo
Date: Mon Mar 16 2026 - 06:54:39 EST
On Mon Mar 16, 2026 at 8:21 AM GMT, wrote:
> From: Fabricio Parra <a@xxxxxxxxxx>
Your email header is malformed. It has "Fabricio Parra a@xxxxxxxxxx" in the from
line instead of expected RFC 5322 format. People won't be able to just reply to
this email and get it delivered to your inbox.
Please check and fix your git or email configuration.
Best,
Gary
>
> When building the kernel using the llvm-22.1.0-rust-1.93.1-x86_64
> toolchain provided by kernel.org with ARCH=x86_64, the following symbols
> are generated:
>
> $ nm vmlinux | grep ' _R'.*Completion | rustfilt
> ffffffff81827930 T <kernel::sync::completion::Completion>::complete_all
> ffffffff81827950 T <kernel::sync::completion::Completion>::wait_for_completion
>
> These Rust methods are thin wrappers around the C completion helpers
> `complete_all` and `wait_for_completion`. Mark them `#[inline]` to keep
> the wrapper pattern consistent with other small Rust helper methods.
>
> After applying this patch, the above command will produce no output.
>
> Link: https://github.com/Rust-for-Linux/linux/issues/1145
> Suggested-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>
> Signed-off-by: Fabricio Parra <a@xxxxxxxxxx>
> ---
> rust/kernel/sync/completion.rs | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/rust/kernel/sync/completion.rs b/rust/kernel/sync/completion.rs
> index c50012a940a3..35ff049ff078 100644
> --- a/rust/kernel/sync/completion.rs
> +++ b/rust/kernel/sync/completion.rs
> @@ -94,6 +94,7 @@ fn as_raw(&self) -> *mut bindings::completion {
> ///
> /// This method wakes up all tasks waiting on this completion; after this operation the
> /// completion is permanently done, i.e. signals all current and future waiters.
> + #[inline]
> pub fn complete_all(&self) {
> // SAFETY: `self.as_raw()` is a pointer to a valid `struct completion`.
> unsafe { bindings::complete_all(self.as_raw()) };
> @@ -105,6 +106,7 @@ pub fn complete_all(&self) {
> /// timeout.
> ///
> /// See also [`Completion::complete_all`].
> + #[inline]
> pub fn wait_for_completion(&self) {
> // SAFETY: `self.as_raw()` is a pointer to a valid `struct completion`.
> unsafe { bindings::wait_for_completion(self.as_raw()) };
>
> base-commit: 79e25710e7227228902d672417b552dd1d7e5d3b