On Tue, Mar 28, 2017 at 06:25:07PM +0200, Dmitry Vyukov wrote: > On Tue, Mar 28, 2017 at 6:15 PM, Dmitry Vyukov <dvyu...@google.com> wrote:
> > #define __try_cmpxchg(ptr, pold, new, size) \ > > __raw_try_cmpxchg((ptr), (pold), (new), (size), LOCK_PREFIX) > > > > -#define try_cmpxchg(ptr, pold, new) \ > > +#define arch_try_cmpxchg(ptr, pold, new) \ > > __try_cmpxchg((ptr), (pold), (new), sizeof(*(ptr))) > > Is try_cmpxchg() a part of public interface like cmpxchg, or only a > helper to implement atomic_try_cmpxchg()? > If it's the latter than we don't need to wrap them. De-facto, it's an x86-specific helper. It was added in commit: a9ebf306f52c756c ("locking/atomic: Introduce atomic_try_cmpxchg()") ... which did not add try_cmpxchg to any generic header. If it was meant to be part of the public interface, we'd need a generic definition. Thanks, Mark.