Re: [PATCH] atomic: Fix bugs in 'fetch_or()' and rename it to 'xchg_or()'

From: Peter Zijlstra
Date: Tue Mar 15 2016 - 09:18:02 EST


On Tue, Mar 15, 2016 at 01:32:53PM +0100, Ingo Molnar wrote:
> So if we are still on the same page at this point, we'd have to add a pointer
> variant too I suspect:
>
> cmpxchg_ptr()
> xchg_ptr()

We typically call those _long(), like atomic_long_t etc.. Under the
assumption that sizeof(long) == sizeof(void *).

Also, _IF_ we're going to do this, this is the perfect opportunity to
also introduce the __atomic address space and load() and store()
operations. This is needed for architectures where:

cmpxchg()/xchg()

isn't safe against regular stores, like all those who implement atomics
using hashed spinlocked.

Its going to be a horrid lot of work though :/