On Thu, Jul 27, 2017 at 2:19 AM, Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote: > In order to provide non-atomic functions for io{read|write}64 that will > use readq and writeq when appropriate. We define a number of variants > of these functions in the generic iomap that will do non-atomic > operations on pio but atomic operations on mmio. > > These functions are only defined if readq and writeq are defined. If > they are not, then the wrappers that always use non-atomic operations > from include/linux/io-64-nonatomic*.h will be used. Don't you see here a slight problem? In some cases we want to substitute atomic in favour of non-atomic when both are defined. So, please don't do this "smartly". > +u64 ioread64_lo_hi(void __iomem *addr) > +{ > + IO_COND(addr, return pio_read64_lo_hi(port), return readq(addr)); > + return 0xffffffffffffffffLL; > +} U missed u. -- With Best Regards, Andy Shevchenko