Subject: [PULL] virtio: virtio 1.0 support, misc patches

From: "Michael S. Tsirkin" <[email-masked]>
Date: Thu, 11 Dec 2014 14:02:48 +0200

The following changes since commit b2776bf7149bddd1f4161f14f79520f17fc1d71d:

  Linux 3.18 (2014-12-07 14:21:05 -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 803cd18f7b5e6c7ad6bee9571ae8f4450190ab58:

  virtio_ccw: finalize_features error handling (2014-12-09 16:32:41 +0200)

Note: some net drivers are affected by these patches.
David said he's fine with merging these patches through
my tree.
Rusty's on vacation, he acked using my tree for these, too.

----------------------------------------------------------------
virtio: virtio 1.0 support, misc patches

This adds a lot of infrastructure for virtio 1.0 support.
Notable missing pieces: virtio pci, virtio balloon (needs spec extension),
vhost scsi.

Plus, there are some minor fixes in a couple of places.

Cc: David Miller <[email-masked]>
Cc: Rusty Russell <[email-masked]>
Signed-off-by: Michael S. Tsirkin <[email-masked]>

----------------------------------------------------------------
Cornelia Huck (4):
      virtio: allow transports to get avail/used addresses
      KVM: s390: virtio-ccw revision 1 SET_VQ
      KVM: s390: enable virtio-ccw revision 1
      virtio_ccw: finalize_features error handling

Jason Wang (1):
      vhost: remove unnecessary forward declarations in vhost.h

Michael S. Tsirkin (64):
      virtio: add low-level APIs for feature bits
      virtio: use u32, not bitmap for features
      mic_virtio: robust feature array size calculation
      virtio: add support for 64 bit features.
      virtio: assert 32 bit features in transports
      virtio_ccw: add support for 64 bit features.
      virtio: add virtio 1.0 feature bit
      virtio: memory access APIs
      virtio_ring: switch to new memory access APIs
      virtio_config: endian conversion for v1.0
      virtio: set FEATURES_OK
      virtio: simplify feature bit handling
      virtio: add legacy feature table support
      virtio_net: v1.0 endianness
      virtio_blk: v1.0 support
      KVM: s390 allow virtio_ccw status writes to fail
      virtio_blk: make serial attribute static
      virtio_blk: fix race at module removal
      virtio_net: pass vi around
      virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr
      virtio_net: stricter short buffer length checks
      virtio_net: bigger header when VERSION_1 is set
      virtio_net: disable mac write for virtio 1.0
      virtio_net: enable v1.0 support
      vhost: make features 64 bit
      vhost: add memory access wrappers
      vhost/net: force len for TX to host endian
      vhost: switch to __get/__put_user exclusively
      vhost: virtio 1.0 endian-ness support
      vhost/net: virtio 1.0 byte swap
      vhost/net: larger header for virtio 1.0
      vhost/net: enable virtio 1.0
      tun: move internal flag defines out of uapi
      tun: drop most type defines
      tun: add VNET_LE flag
      tun: TUN_VNET_LE support, fix sparse warnings for virtio headers
      macvtap: TUN_VNET_LE support
      virtio_scsi: v1.0 support
      virtio_scsi: move to uapi
      virtio_scsi: export to userspace
      vhost/scsi: partial virtio 1.0 support
      af_packet: virtio 1.0 stubs
      virtio_console: virtio 1.0 support
      virtio_balloon: add legacy_only flag
      virtio: make VIRTIO_F_VERSION_1 a transport bit
      virtio: drop VIRTIO_F_VERSION_1 from drivers
      virtio_console: fix sparse warnings
      virtio: add API to detect legacy devices
      virtio_ccw: legacy: don't negotiate rev 1/features
      virtio: allow finalize_features to fail
      virtio_ccw: rev 1 devices set VIRTIO_F_VERSION_1
      virtio_balloon: drop legacy_only driver flag
      virtio: drop legacy_only driver flag
      virtio_pci: add isr field
      virtio_pci: fix coding style for structs
      virtio_pci: free up vq->priv
      virtio_pci: use priv for vq notification
      virtio_pci: delete vqs indirectly
      virtio_pci: setup vqs indirectly
      virtio_pci: setup config vector indirectly
      virtio_pci: split out legacy device support
      virtio_pci: update file descriptions and copyright
      virtio_pci: rename virtio_pci -> virtio_pci_common
      virtio_ccw: future-proof finalize_features

Thomas Huth (1):
      KVM: s390: Set virtio-ccw transport revision

 drivers/vhost/vhost.h                  |  41 +-
 drivers/virtio/virtio_pci_common.h     | 136 ++++++
 include/linux/virtio.h                 |  12 +-
 include/linux/virtio_byteorder.h       |  59 +++
 include/linux/virtio_config.h          | 103 ++++-
 include/uapi/linux/if_tun.h            |  17 +-
 include/uapi/linux/virtio_blk.h        |  15 +-
 include/uapi/linux/virtio_config.h     |   9 +-
 include/uapi/linux/virtio_console.h    |   7 +-
 include/uapi/linux/virtio_net.h        |  15 +-
 include/uapi/linux/virtio_ring.h       |  45 +-
 include/{ => uapi}/linux/virtio_scsi.h | 106 ++---
 include/uapi/linux/virtio_types.h      |  46 ++
 tools/virtio/linux/virtio.h            |  22 +-
 tools/virtio/linux/virtio_config.h     |   2 +-
 drivers/block/virtio_blk.c             |  74 +--
 drivers/char/virtio_console.c          |  39 +-
 drivers/lguest/lguest_device.c         |  17 +-
 drivers/misc/mic/card/mic_virtio.c     |  14 +-
 drivers/net/macvtap.c                  |  68 ++-
 drivers/net/tun.c                      | 168 +++----
 drivers/net/virtio_net.c               | 161 +++----
 drivers/remoteproc/remoteproc_virtio.c |  11 +-
 drivers/s390/kvm/kvm_virtio.c          |  11 +-
 drivers/s390/kvm/virtio_ccw.c          | 203 +++++++--
 drivers/scsi/virtio_scsi.c             |  50 +-
 drivers/vhost/net.c                    |  31 +-
 drivers/vhost/scsi.c                   |  22 +-
 drivers/vhost/vhost.c                  |  93 ++--
 drivers/virtio/virtio.c                | 102 ++++-
 drivers/virtio/virtio_mmio.c           |  17 +-
 drivers/virtio/virtio_pci.c            | 802 ---------------------------------
 drivers/virtio/virtio_pci_common.c     | 464 +++++++++++++++++++
 drivers/virtio/virtio_pci_legacy.c     | 326 ++++++++++++++
 drivers/virtio/virtio_ring.c           | 109 +++--
 net/packet/af_packet.c                 |  35 +-
 tools/virtio/virtio_test.c             |   5 +-
 tools/virtio/vringh_test.c             |  16 +-
 drivers/virtio/Makefile                |   1 +
 include/uapi/linux/Kbuild              |   2 +
 40 files changed, 2048 insertions(+), 1428 deletions(-)
 create mode 100644 drivers/virtio/virtio_pci_common.h
 create mode 100644 include/linux/virtio_byteorder.h
 rename include/{ => uapi}/linux/virtio_scsi.h (73%)
 create mode 100644 include/uapi/linux/virtio_types.h
 delete mode 100644 drivers/virtio/virtio_pci.c
 create mode 100644 drivers/virtio/virtio_pci_common.c
 create mode 100644 drivers/virtio/virtio_pci_legacy.c