The following changes since commit 0adb32858b0bddf4ada5f364a84ed60b196dbcda: Linux 4.16 (2018-04-01 14:20:27 -0700) are available in the git repository at: git+ssh://gitolite@xxxxxxxxxxxxx/pub/scm/linux/kernel/git/arnd/asm-generic.git tags/asm-generic for you to fetch changes up to a71e7c44ffb7baea0c0795824afc34cc0bc1a301: io: change writeX_relaxed() to remove barriers (2018-04-10 16:37:34 +0200) ---------------------------------------------------------------- asm-generic fixes for v4.17-rc1 I have one regression fix for a minor build problem after the architecture removal series, plus a rework of the barriers in the readl/writel functions, thanks to work by Sinan Kaya: This started from a discussion on the linuxpcc and rdma mailing lists [1]. To summarize, we decided that architectures are responsible to serialize readl() and writel() accesses on a device MMIO space relative to DMA performed by that device. This series provides a pessimistic implementation of that behavior for asm-generic/io.h, which is in turn used by a number of architectures (h8300, microblaze, nios2, openrisc, s390, sparc, um, unicore32, and xtensa). Some of those presumably need no extra barriers, or something weaker than rmb()/wmb(), and they are advised to override the new default for better performance. For inb()/outb(), the same barriers are used, but architectures might want to add another barrier to outb() here if that can guarantee non-posted behavior (some architectures can, others cannot do that). The readl_relaxed()/writel_relaxed() family of functions retains the existing behavior with no extra barriers. [1]: https://lists.ozlabs.org/pipermail/linuxppc-dev/2018-March/170481.html ---------------------------------------------------------------- Liu, Changcheng (1): dts: remove cris & metag dts hard link file Sinan Kaya (7): io: define several IO & PIO barrier types for the asm-generic version io: define stronger ordering for the default readX() implementation io: define stronger ordering for the default writeX() implementation io: change outX() to have their own IO barrier overrides io: change inX() to have their own IO barrier overrides io: change readX_relaxed() to remove barriers io: change writeX_relaxed() to remove barriers include/asm-generic/io.h | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ scripts/dtc/include-prefixes/cris | 1 - scripts/dtc/include-prefixes/metag | 1 - 3 files changed, 143 insertions(+), 20 deletions(-) delete mode 120000 scripts/dtc/include-prefixes/cris delete mode 120000 scripts/dtc/include-prefixes/metag