| Subject | Re: [patch V4 part 1 06/36] compiler: Simple READ/WRITE_ONCE() implementations | From | Alexandre Chartre <> | Date | Wed, 6 May 2020 15:11:21 +0200 |
| |
On 5/5/20 3:16 PM, Thomas Gleixner wrote: > READ/WRITE_ONCE_NOCHECK() is required for atomics in code which cannot be > instrumented like the x86 int3 text poke code. As READ/WRITE_ONCE() is > undergoing a rewrite, provide __{READ,WRITE}_ONCE_SCALAR(). > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > include/linux/compiler.h | 8 ++++++++ > 1 file changed, 8 insertions(+)
Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
alex.
> --- a/include/linux/compiler.h > +++ b/include/linux/compiler.h > @@ -313,6 +313,14 @@ unsigned long read_word_at_a_time(const > __u.__val; \ > }) > > +#define __READ_ONCE_SCALAR(x) \ > + (*(const volatile typeof(x) *)&(x)) > + > +#define __WRITE_ONCE_SCALAR(x, val) \ > +do { \ > + *(volatile typeof(x) *)&(x) = val; \ > +} while (0) > + > /** > * data_race - mark an expression as containing intentional data races > * >
|