Skip to content
  • Linus Torvalds's avatar
    Merge tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · c17b0aad
    Linus Torvalds authored
    Pull asm-generic fixes from Arnd Bergmann:
     "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
    
    * tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
      io: change writeX_relaxed() to remove barriers
      io: change readX_relaxed() to remove barriers
      dts: remove cris & metag dts hard link file
      io: change inX() to have their own IO barrier overrides
      io: change outX() to have their own IO barrier overrides
      io: define stronger ordering for the default writeX() implementation
      io: define stronger ordering for the default readX() implementation
      io: define several IO & PIO barrier types for the asm-generic version
    c17b0aad