Re: [PATCH] rust: sync: completion: mark inline complete_all and wait_for_completion
From: A.L.I.C.E
Date: Mon Mar 16 2026 - 10:43:55 EST
On Mon, Mar 16, 2026 at 10:51 AM GMT Gary Guo <gary@xxxxxxxxxxx> wrote:
>
> 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
>
My bad, I completely messed up my git-send-email config while I was setting
it up. I'll send a v2 with fixed headers shortly, thank you for pointing it out!
Regards,
Fabricio
> >
> > 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
>
>