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.

Reply via email to