[PATCH 0/7] cleanup issues with io{read|write}64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux