On Tue, Mar 14, 2017 at 4:44 PM, Mark Rutland <[email protected]> wrote: >> > -static __always_inline int atomic_read(const atomic_t *v) >> > +static __always_inline int arch_atomic_read(const atomic_t *v) >> > { >> > - return READ_ONCE((v)->counter); >> > + return READ_ONCE_NOCHECK((v)->counter); >> >> Should NOCHEKC come with a comment, because i've no idea why this is so. > > I suspect the idea is that given the wrapper will have done the KASAN > check, duplicating it here is either sub-optimal, or results in > duplicate splats. READ_ONCE() has an implicit KASAN check, > READ_ONCE_NOCHECK() does not. > > If this is to solve duplicate splats, it'd be worth having a > WRITE_ONCE_NOCHECK() for arch_atomic_set(). > > Agreed on the comment, regardless.
Reverted xchg changes. Added comments re READ_ONCE_NOCHECK() and WRITE_ONCE(). Added file comment. Split into 3 patches and mailed. Thanks!

