On 28/06/17 04:11 AM, Arnd Bergmann wrote: > This is wrong since ioread* is not the same read* on x86 and other > architectures that have native PCI PIO accessors, or that require > additional barriers for those. > > You have to copy hi_lo_readq() here, and call ioread32 twice instead > of calling readl() twice. Same for iowrite64. > >> +#ifndef ioread64be >> +#define ioread64be(p) be64_to_cpu(ioread64(p)) >> +#endif > > This has another problem: ioread64() is defined to access little-endian > registers, just like readq(). This means that instead of be64_to_cpu() > you need swab64() and always perform the byte swap, otherwise this > would be broken on big-endian architectures. Ah, ok, understood. I'll see if I can fix both these issues. Thanks, Logan