Subject: [PULL] virtio: barrier rework+fixes

From: "Michael S. Tsirkin" <[email-masked]>
Date: Wed, 13 Jan 2016 18:28:56 +0200

The following changes since commit afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc:

  Linux 4.4 (2016-01-10 15:01:32 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linus

for you to fetch changes up to 43e361f23c49dbddf74f56ddf6cdd85c5dbff6da:

  checkpatch: add virt barriers (2016-01-12 20:47:08 +0200)

----------------------------------------------------------------
virtio: barrier rework+fixes

This adds a new kind of barrier, and reworks virtio and xen
to use it.
Plus some fixes here and there.

Signed-off-by: Michael S. Tsirkin <[email-masked]>

----------------------------------------------------------------

Yes I know that the patch by Davidlohr Bueso has a typo in the subject :(

Davidlohr Bueso (1):
      lcoking/barriers, arch: Use smp barriers in smp_store_release()

Michael S. Tsirkin (40):
      asm-generic: guard smp_store_release/load_acquire
      ia64: rename nop->iosapic_nop
      ia64: reuse asm-generic/barrier.h
      powerpc: reuse asm-generic/barrier.h
      s390: reuse asm-generic/barrier.h
      sparc: reuse asm-generic/barrier.h
      arm: reuse asm-generic/barrier.h
      arm64: reuse asm-generic/barrier.h
      metag: reuse asm-generic/barrier.h
      mips: reuse asm-generic/barrier.h
      x86/um: reuse asm-generic/barrier.h
      x86: reuse asm-generic/barrier.h
      asm-generic: add __smp_xxx wrappers
      powerpc: define __smp_xxx
      arm64: define __smp_xxx
      arm: define __smp_xxx
      blackfin: define __smp_xxx
      ia64: define __smp_xxx
      metag: define __smp_xxx
      mips: define __smp_xxx
      s390: define __smp_xxx
      sh: define __smp_xxx, fix smp_store_mb for !SMP
      sparc: define __smp_xxx
      tile: define __smp_xxx
      xtensa: define __smp_xxx
      x86: define __smp_xxx
      asm-generic: implement virt_xxx memory barriers
      Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb"
      virtio_ring: update weak barriers to use virt_xxx
      sh: support 1 and 2 byte xchg
      sh: move xchg_cmpxchg to a header by itself
      virtio_ring: use virt_store_mb
      xenbus: use virt_xxx barriers
      xen/io: use virt_xxx barriers
      xen/events: use virt_xxx barriers
      s390: use generic memory barriers
      s390: more efficient smp barriers
      checkpatch.pl: add missing memory barriers
      checkpatch: check for __smp outside barrier.h
      checkpatch: add virt barriers

Minchan Kim (2):
      virtio_balloon: fix race by fill and leak
      virtio_balloon: fix race between migration and ballooning

Stefan Hajnoczi (1):
      virtio: make find_vqs() checkpatch.pl-friendly

 arch/arm/include/asm/barrier.h         |  35 ++---------
 arch/arm64/include/asm/barrier.h       |  19 ++----
 arch/blackfin/include/asm/barrier.h    |   4 +-
 arch/ia64/include/asm/barrier.h        |  24 +++-----
 arch/metag/include/asm/barrier.h       |  55 +++++------------
 arch/mips/include/asm/barrier.h        |  51 +++++-----------
 arch/powerpc/include/asm/barrier.h     |  33 ++++------
 arch/s390/include/asm/barrier.h        |  23 ++++---
 arch/sh/include/asm/barrier.h          |   3 +-
 arch/sh/include/asm/cmpxchg-grb.h      |  22 +++++++
 arch/sh/include/asm/cmpxchg-irq.h      |  11 ++++
 arch/sh/include/asm/cmpxchg-llsc.h     |  25 +-------
 arch/sh/include/asm/cmpxchg-xchg.h     |  51 ++++++++++++++++
 arch/sh/include/asm/cmpxchg.h          |   3 +
 arch/sparc/include/asm/barrier_32.h    |   1 -
 arch/sparc/include/asm/barrier_64.h    |  29 ++-------
 arch/sparc/include/asm/processor.h     |   3 -
 arch/tile/include/asm/barrier.h        |   9 +--
 arch/x86/include/asm/barrier.h         |  36 +++++------
 arch/x86/um/asm/barrier.h              |   9 +--
 arch/xtensa/include/asm/barrier.h      |   4 +-
 drivers/virtio/virtio_pci_common.h     |   2 +-
 include/asm-generic/barrier.h          | 106 ++++++++++++++++++++++++++++++---
 include/linux/virtio_config.h          |   2 +-
 include/linux/virtio_ring.h            |  21 +++++--
 include/xen/interface/io/ring.h        |  16 ++---
 arch/ia64/kernel/iosapic.c             |   6 +-
 drivers/gpu/drm/virtio/virtgpu_kms.c   |   2 +-
 drivers/misc/mic/card/mic_virtio.c     |   2 +-
 drivers/remoteproc/remoteproc_virtio.c |   2 +-
 drivers/rpmsg/virtio_rpmsg_bus.c       |   2 +-
 drivers/s390/virtio/kvm_virtio.c       |   2 +-
 drivers/s390/virtio/virtio_ccw.c       |   2 +-
 drivers/virtio/virtio_balloon.c        |   4 +-
 drivers/virtio/virtio_input.c          |   2 +-
 drivers/virtio/virtio_mmio.c           |   2 +-
 drivers/virtio/virtio_pci_common.c     |   4 +-
 drivers/virtio/virtio_pci_modern.c     |   2 +-
 drivers/virtio/virtio_ring.c           |  15 +++--
 drivers/xen/events/events_fifo.c       |   3 +-
 drivers/xen/xenbus/xenbus_comms.c      |   8 +--
 mm/balloon_compaction.c                |   4 +-
 Documentation/memory-barriers.txt      |  28 +++++++--
 scripts/checkpatch.pl                  |  33 +++++++++-
 44 files changed, 401 insertions(+), 319 deletions(-)
 create mode 100644 arch/sh/include/asm/cmpxchg-xchg.h