Re: [PATCH 5/8] x86: switch atomic.h to use atomic-instrumented.h

From: Mark Rutland
Date: Wed Mar 29 2017 - 09:38:01 EST


On Tue, Mar 28, 2017 at 06:25:07PM +0200, Dmitry Vyukov wrote:
> On Tue, Mar 28, 2017 at 6:15 PM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> 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.