On Sat, 17 Jan 2026 20:22:42 +0800 Boqun Feng <[email protected]> wrote:
> Atomic pointer support is an important piece of synchronization > algorithm, e.g. RCU, hence provide the support for that. > > Note that instead of relying on atomic_long or the implementation of > `Atomic<usize>`, a new set of helpers (atomic_ptr_*) is introduced for > atomic pointer specifically, this is because ptr2int casting would > lose the provenance of a pointer and even though in theory there are a > few tricks the provenance can be restored, it'll still be a simpler > implementation if C could provide atomic pointers directly. The side > effects of this approach are: we don't have the arithmetic and logical > operations for pointers yet and the current implementation only works > on ARCH_SUPPORTS_ATOMIC_RMW architectures, but these are implementation > issues and can be added later. > > Signed-off-by: Boqun Feng <[email protected]> > --- > rust/helpers/atomic_ext.c | 3 +++ > rust/kernel/sync/atomic.rs | 12 +++++++++++- > rust/kernel/sync/atomic/internal.rs | 21 +++++++++++++++------ > rust/kernel/sync/atomic/predefine.rs | 23 +++++++++++++++++++++++ > 4 files changed, 52 insertions(+), 7 deletions(-) Reviewed-by: FUJITA Tomonori <[email protected]>

