]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rust: sync: Add memory barriers
authorBoqun Feng <boqun.feng@gmail.com>
Fri, 5 Sep 2025 04:41:36 +0000 (21:41 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Sep 2025 07:38:34 +0000 (09:38 +0200)
commitd9ea5a41cef80dc8103f4114b072b27364f2e06a
treec00263765c7e37f63fd2a2015ac843fbac3ad5c3
parent84c6d36bcaf98a8c0533cd334a624d536d20879b
rust: sync: Add memory barriers

Memory barriers are building blocks for concurrent code, hence provide
a minimal set of them.

The compiler barrier, barrier(), is implemented in inline asm instead of
using core::sync::atomic::compiler_fence() because memory models are
different: kernel's atomics are implemented in inline asm therefore the
compiler barrier should be implemented in inline asm as well. Also it's
currently only public to the kernel crate until there's a reasonable
driver usage.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Elle Rhumsaa <elle@weathered-steel.dev>
Link: https://lore.kernel.org/all/20250719030827.61357-10-boqun.feng@gmail.com/
rust/helpers/barrier.c [new file with mode: 0644]
rust/helpers/helpers.c
rust/kernel/sync.rs
rust/kernel/sync/barrier.rs [new file with mode: 0644]