summaryrefslogtreecommitdiff
path: root/rust/helpers/task.c
diff options
context:
space:
mode:
authorPuranjay Mohan <puranjay@kernel.org>2025-07-10 20:54:33 +0300
committerAlexei Starovoitov <ast@kernel.org>2025-07-17 04:38:52 +0300
commit0769857a07b4451a1dc1c3ad1f1c86a6f4ce136a (patch)
tree0c502e343a2ea1a8309ac4212c5ac7d7c36bb049 /rust/helpers/task.c
parentfd60aa0a45c1508cdcb982dbf25fd003a6b34e92 (diff)
downloadlinux-0769857a07b4451a1dc1c3ad1f1c86a6f4ce136a.tar.xz
selftests/bpf: fix implementation of smp_mb()
As BPF doesn't include any barrier instructions, smp_mb() is implemented by doing a dummy value returning atomic operation. Such an operation acts a full barrier as enforced by LKMM and also by the work in progress BPF memory model. If the returned value is not used, clang[1] can optimize the value returning atomic instruction in to a normal atomic instruction which provides no ordering guarantees. Mark the variable as volatile so the above optimization is never performed and smp_mb() works as expected. [1] https://godbolt.org/z/qzze7bG6z Fixes: 88d706ba7cc5 ("selftests/bpf: Introduce arena spin lock") Signed-off-by: Puranjay Mohan <puranjay@kernel.org> Link: https://lore.kernel.org/r/20250710175434.18829-2-puranjay@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'rust/helpers/task.c')
0 files changed, 0 insertions, 0 deletions