Linus Torvalds torvalds@linux-foundation.org wrote:
Of course, in practice, for pointers, the whole "dereference off a pointer" on the read side *does* imply a barrier in all relevant situations. So yes, a smp_store_release() -> READ_ONCE() does work in practice, although it's technically wrong (in particular, it's wrong on alpha, because of the completely broken memory ordering that alpha has that doesn't even honor data dependencies as read-side orderings)
READ_ONCE has contained the alpha barrier since 2017:
commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb Author: Will Deacon will@kernel.org Date: Tue Oct 24 11:22:47 2017 +0100
locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE()
Cheers,