[GIT PULL] virtio: features, fixes

From: Michael S. Tsirkin
Date: Tue Aug 11 2020 - 04:56:28 EST


OK, some patches in the series add buggy code which is then fixed by
follow-up patches, but none of the bugs fixed are severe regressions on
common configs (e.g. compiler warnings, lockdep/rt errors, or bugs in
new drivers). So I thought it's more important to preserve the credit
for the fixes.

I had to pull 5 patches from git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux mlx5-next
to get the mlx5 things to work, this seems to be how mellanox guys are
always managing things, and they told me they are ok with it.

The following changes since commit bcf876870b95592b52519ed4aafcf9d95999bc9c:

Linux 5.8 (2020-08-02 14:21:45 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 8a7c3213db068135e816a6a517157de6443290d6:

vdpa/mlx5: fix up endian-ness for mtu (2020-08-10 10:38:55 -0400)

----------------------------------------------------------------
virtio: fixes, features

IRQ bypass support for vdpa and IFC
MLX5 vdpa driver
Endian-ness fixes for virtio drivers
Misc other fixes

Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

----------------------------------------------------------------
Alex Dewar (1):
vdpa/mlx5: Fix uninitialised variable in core/mr.c

Colin Ian King (1):
vdpa/mlx5: fix memory allocation failure checks

Dan Carpenter (2):
vdpa/mlx5: Fix pointer math in mlx5_vdpa_get_config()
vdpa: Fix pointer math bug in vdpasim_get_config()

Eli Cohen (9):
net/mlx5: Support setting access rights of dma addresses
net/mlx5: Add VDPA interface type to supported enumerations
net/mlx5: Add interface changes required for VDPA
net/vdpa: Use struct for set/get vq state
vdpa: Modify get_vq_state() to return error code
vdpa/mlx5: Add hardware descriptive header file
vdpa/mlx5: Add support library for mlx5 VDPA implementation
vdpa/mlx5: Add shared memory registration code
vdpa/mlx5: Add VDPA driver for supported mlx5 devices

Gustavo A. R. Silva (1):
vhost: Use flex_array_size() helper in copy_from_user()

Jason Wang (6):
vhost: vdpa: remove per device feature whitelist
vhost-vdpa: refine ioctl pre-processing
vhost: generialize backend features setting/getting
vhost-vdpa: support get/set backend features
vhost-vdpa: support IOTLB batching hints
vdpasim: support batch updating

Liao Pingfang (1):
virtio_pci_modern: Fix the comment of virtio_pci_find_capability()

Mao Wenan (1):
virtio_ring: Avoid loop when vq is broken in virtqueue_poll

Maor Gottlieb (2):
net/mlx5: Export resource dump interface
net/mlx5: Add support in query QP, CQ and MKEY segments

Max Gurtovoy (2):
vdpasim: protect concurrent access to iommu iotlb
vdpa: remove hard coded virtq num

Meir Lichtinger (1):
RDMA/mlx5: ConnectX-7 new capabilities to set relaxed ordering by UMR

Michael Guralnik (2):
net/mlx5: Enable QP number request when creating IPoIB underlay QP
net/mlx5: Enable count action for rules with allow action

Michael S. Tsirkin (44):
virtio: VIRTIO_F_IOMMU_PLATFORM -> VIRTIO_F_ACCESS_PLATFORM
virtio: virtio_has_iommu_quirk -> virtio_has_dma_quirk
virtio_balloon: fix sparse warning
virtio_ring: sparse warning fixup
virtio: allow __virtioXX, __leXX in config space
virtio_9p: correct tags for config space fields
virtio_balloon: correct tags for config space fields
virtio_blk: correct tags for config space fields
virtio_console: correct tags for config space fields
virtio_crypto: correct tags for config space fields
virtio_fs: correct tags for config space fields
virtio_gpu: correct tags for config space fields
virtio_input: correct tags for config space fields
virtio_iommu: correct tags for config space fields
virtio_mem: correct tags for config space fields
virtio_net: correct tags for config space fields
virtio_pmem: correct tags for config space fields
virtio_scsi: correct tags for config space fields
virtio_config: disallow native type fields
mlxbf-tmfifo: sparse tags for config access
vdpa: make sure set_features is invoked for legacy
vhost/vdpa: switch to new helpers
virtio_vdpa: legacy features handling
vdpa_sim: fix endian-ness of config space
virtio_config: cread/write cleanup
virtio_config: rewrite using _Generic
virtio_config: disallow native type fields (again)
virtio_config: LE config space accessors
virtio_caif: correct tags for config space fields
virtio_config: add virtio_cread_le_feature
virtio_balloon: use LE config space accesses
virtio_input: convert to LE accessors
virtio_fs: convert to LE accessors
virtio_crypto: convert to LE accessors
virtio_pmem: convert to LE accessors
drm/virtio: convert to LE accessors
virtio_mem: convert to LE accessors
virtio-iommu: convert to LE accessors
virtio_config: drop LE option from config space
virtio_net: use LE accessors for speed/duplex
Merge branch 'mlx5-next' of git://git.kernel.org/.../mellanox/linux into HEAD
virtio_config: fix up warnings on parisc
vdpa_sim: init iommu lock
vdpa/mlx5: fix up endian-ness for mtu

Parav Pandit (2):
net/mlx5: Avoid RDMA file inclusion in core driver
net/mlx5: Avoid eswitch header inclusion in fs core layer

Tariq Toukan (1):
net/mlx5: kTLS, Improve TLS params layout structures

Zhu Lingshan (7):
vhost: introduce vhost_vring_call
kvm: detect assigned device via irqbypass manager
vDPA: add get_vq_irq() in vdpa_config_ops
vhost_vdpa: implement IRQ offloading in vhost_vdpa
ifcvf: implement vdpa_config_ops.get_vq_irq()
irqbypass: do not start cons/prod when failed connect
vDPA: dont change vq irq after DRIVER_OK

arch/um/drivers/virtio_uml.c | 2 +-
arch/x86/kvm/x86.c | 12 +-
drivers/crypto/virtio/virtio_crypto_core.c | 46 +-
drivers/gpu/drm/virtio/virtgpu_kms.c | 16 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 4 +-
drivers/iommu/virtio-iommu.c | 34 +-
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 11 +-
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.c | 6 +
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.h | 33 +-
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 14 +-
.../mellanox/mlx5/core/en_accel/tls_rxtx.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 10 -
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 10 +
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 3 +
drivers/net/virtio_net.c | 9 +-
drivers/nvdimm/virtio_pmem.c | 4 +-
drivers/platform/mellanox/mlxbf-tmfifo.c | 13 +-
drivers/scsi/virtio_scsi.c | 4 +-
drivers/vdpa/Kconfig | 19 +
drivers/vdpa/Makefile | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 4 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 6 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 31 +-
drivers/vdpa/mlx5/Makefile | 4 +
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 91 +
drivers/vdpa/mlx5/core/mlx5_vdpa_ifc.h | 168 ++
drivers/vdpa/mlx5/core/mr.c | 486 +++++
drivers/vdpa/mlx5/core/resources.c | 284 +++
drivers/vdpa/mlx5/net/main.c | 76 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 1974 ++++++++++++++++++++
drivers/vdpa/mlx5/net/mlx5_vnet.h | 24 +
drivers/vdpa/vdpa.c | 4 +
drivers/vdpa/vdpa_sim/vdpa_sim.c | 124 +-
drivers/vhost/Kconfig | 1 +
drivers/vhost/net.c | 22 +-
drivers/vhost/vdpa.c | 183 +-
drivers/vhost/vhost.c | 39 +-
drivers/vhost/vhost.h | 11 +-
drivers/virtio/virtio_balloon.c | 30 +-
drivers/virtio/virtio_input.c | 32 +-
drivers/virtio/virtio_mem.c | 30 +-
drivers/virtio/virtio_pci_modern.c | 1 +
drivers/virtio/virtio_ring.c | 7 +-
drivers/virtio/virtio_vdpa.c | 9 +-
fs/fuse/virtio_fs.c | 4 +-
include/linux/mlx5/cq.h | 1 -
include/linux/mlx5/device.h | 13 +-
include/linux/mlx5/driver.h | 2 +
include/linux/mlx5/mlx5_ifc.h | 134 +-
include/linux/mlx5/qp.h | 2 +-
include/linux/mlx5/rsc_dump.h | 51 +
include/linux/vdpa.h | 66 +-
include/linux/virtio_caif.h | 6 +-
include/linux/virtio_config.h | 191 +-
include/linux/virtio_ring.h | 19 +-
include/uapi/linux/vhost.h | 2 +
include/uapi/linux/vhost_types.h | 11 +
include/uapi/linux/virtio_9p.h | 4 +-
include/uapi/linux/virtio_balloon.h | 10 +-
include/uapi/linux/virtio_blk.h | 26 +-
include/uapi/linux/virtio_config.h | 10 +-
include/uapi/linux/virtio_console.h | 8 +-
include/uapi/linux/virtio_crypto.h | 26 +-
include/uapi/linux/virtio_fs.h | 2 +-
include/uapi/linux/virtio_gpu.h | 8 +-
include/uapi/linux/virtio_input.h | 18 +-
include/uapi/linux/virtio_iommu.h | 12 +-
include/uapi/linux/virtio_mem.h | 14 +-
include/uapi/linux/virtio_net.h | 8 +-
include/uapi/linux/virtio_pmem.h | 4 +-
include/uapi/linux/virtio_scsi.h | 20 +-
tools/virtio/linux/virtio_config.h | 6 +-
virt/lib/irqbypass.c | 16 +-
78 files changed, 4116 insertions(+), 487 deletions(-)
create mode 100644 drivers/vdpa/mlx5/Makefile
create mode 100644 drivers/vdpa/mlx5/core/mlx5_vdpa.h
create mode 100644 drivers/vdpa/mlx5/core/mlx5_vdpa_ifc.h
create mode 100644 drivers/vdpa/mlx5/core/mr.c
create mode 100644 drivers/vdpa/mlx5/core/resources.c
create mode 100644 drivers/vdpa/mlx5/net/main.c
create mode 100644 drivers/vdpa/mlx5/net/mlx5_vnet.c
create mode 100644 drivers/vdpa/mlx5/net/mlx5_vnet.h
create mode 100644 include/linux/mlx5/rsc_dump.h