On Thu, Jun 22, 2017 at 10:09 PM, Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote: > On 6/22/2017 2:08 PM, Alan Cox wrote: >> >> But this does not do the same thing as an ioread64 with regards to >> atomicity or side effects on the device. The same is true of the other >> hacks. You either have a real 64bit single read/write from MMIO space or >> you don't. You can't fake it. > > > Yes, I know. But is it not better than having every driver that wants to use > these functions fake it themselves? Drivers that want a non-atomic variant should include either include/linux/io-64-nonatomic-hi-lo.h or include/linux/io-64-nonatomic-lo-hi.h depending on what they need. Drivers that require 64-bit I/O should probably just depend on CONFIG_64BIT and maybe use readq/writeq. I see that there are exactly two drivers calling ioread64/iowrite64: drivers/crypto/caam/ is architecture specific and drivers/ntb/hw/intel/ntb_hw_intel.c already has a workaround that should make it build on alpha. Arnd