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