mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
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/
19 lines
204 B
C
19 lines
204 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
#include <asm/barrier.h>
|
|
|
|
void rust_helper_smp_mb(void)
|
|
{
|
|
smp_mb();
|
|
}
|
|
|
|
void rust_helper_smp_wmb(void)
|
|
{
|
|
smp_wmb();
|
|
}
|
|
|
|
void rust_helper_smp_rmb(void)
|
|
{
|
|
smp_rmb();
|
|
}
|