Re: [RFC PATCH 5/8] READ_ONCE: Enforce atomicity for {READ,WRITE}_ONCE() memory accesses

From: Will Deacon
Date: Mon Jan 13 2020 - 11:16:14 EST


On Fri, Jan 10, 2020 at 08:24:00PM +0100, Arnd Bergmann wrote:
> On Fri, Jan 10, 2020 at 5:56 PM Will Deacon <will@xxxxxxxxxx> wrote:
>
> > +/*
> > + * Use __READ_ONCE() instead of READ_ONCE() if you do not require any
> > + * atomicity or dependency ordering guarantees. Note that this may result
> > + * in tears!
> > + */
> > +#define __READ_ONCE(x) (*(volatile typeof(x) *)&(x))
> > +
>
> This probably allows writing
>
> extern int i;
> __READ_ONCE(i) = 1;
>
> and not get a warning for it. How about also casting to 'const'?

Well spotted! I'll fold that in.

Will