Hi, Presently, the 64bit IO functions are not very usable in drivers because they are not universally available in all architectures. This leads to a bunch of hacks in the kernel to work around this. (See the last 3 patches in this series.) As part of my switchtec_ntb submission which added another one of these warts, Greg asked me to look into fixing it[1]. So this patchset attempts to solve this issue by filling in the missing implementations in iomap.c and io.h. After that, the alpha architecture is the only one I found that also needed a fix for this. Finally, this patchset removes the hacks that have accumulated in the kernel, thus far, for working around this. This set is based off of v4.12-rc6. Thanks, Logan [1] https://marc.info/?l=linux-kernel&m=149774601910663&w=2 Logan Gunthorpe (7): drm/tilcdc: don't use volatile with iowrite64 iomap: implement ioread64 and iowrite64 asm-generic/io.h: make ioread64 and iowrite64 universally available alpha: provide ioread64 and iowrite64 implementations ntb: ntb_hw_intel: remove ioread64 and iowrite64 hacks drm/tilcdc: clean up ifdef hacks around iowrite64 crypto: caam: cleanup CONFIG_64BIT ifdefs when using io{read|write}64 arch/alpha/include/asm/io.h | 2 ++ arch/alpha/kernel/io.c | 18 +++++++++++ arch/powerpc/include/asm/io.h | 2 ++ drivers/crypto/caam/regs.h | 29 ----------------- drivers/gpu/drm/tilcdc/tilcdc_regs.h | 8 +---- drivers/ntb/hw/intel/ntb_hw_intel.c | 30 ----------------- include/asm-generic/io.h | 54 ++++++++++++++++++++++++------- include/asm-generic/iomap.h | 4 --- lib/iomap.c | 62 ++++++++++++++++++++++++++++++++++++ 9 files changed, 127 insertions(+), 82 deletions(-) -- 2.11.0