On Fri, Jan 10, 2020 at 5:57 PM Will Deacon <will@xxxxxxxxxx> wrote: > @@ -128,10 +128,10 @@ do { \ > #ifndef __smp_load_acquire > #define __smp_load_acquire(p) \ > ({ \ > - typeof(*p) ___p1 = READ_ONCE(*p); \ > + __unqual_scalar_typeof(*p) ___p1 = READ_ONCE(*p); \ > compiletime_assert_atomic_type(*p); \ > __smp_mb(); \ > - ___p1; \ > + (typeof(*p))___p1; \ > }) Doesn't that last (typeof(*p))___p1 mean you put the potential 'volatile' back on the assignment after you went through the effort of taking it out? Arnd