On Wed, Apr 4, 2018 at 5:52 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote: > On 4/3/2018 6:29 PM, Palmer Dabbelt wrote: >> > > Are we looking for something like this? Yes, exactly, plus the same for write and in/out of course. > diff --git a/inc > #ifndef readb > #define readb readb > -static inline u8 readb(const volatile void __iomem *addr) > -{ > - return __raw_readb(addr); > -} > +#define readb(c) \ > + ({ u8 __v; \ > + __io_br(); \ > + __v = __raw_readb(c); \ > + __io_ar(); \ > + __v; }) > #endif I would prefer leaving these as inline functions, but that's only a cosmetic difference. Arnd