The following changes since commit 3d7cb6b04c3f3115719235cc6866b10326de34cd: Linux 5.19 (2022-07-31 14:03:01 -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 93e530d2a1c4c0fcce45e01ae6c5c6287a08d3e3: vdpa/mlx5: Fix possible uninitialized return value (2022-08-11 10:00:36 -0400) ---------------------------------------------------------------- virtio: fatures, fixes A huge patchset supporting vq resize using the new vq reset capability. Features, fixes, cleanups all over the place. Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> ---------------------------------------------------------------- Alvaro Karsz (1): net: virtio_net: notifications coalescing support Bo Liu (3): virtio: Check dev_set_name() return value vhost-vdpa: Call ida_simple_remove() when failed virtio_vdpa: support the arg sizes of find_vqs() Colin Ian King (1): vDPA/ifcvf: remove duplicated assignment to pointer cfg David Hildenbrand (1): drivers/virtio: Clarify CONFIG_VIRTIO_MEM for unsupported architectures Eli Cohen (3): vdpa/mlx5: Implement susupend virtqueue callback vdpa/mlx5: Support different address spaces for control and data vdpa/mlx5: Fix possible uninitialized return value Eugenio Pérez (4): vdpa: Add suspend operation vhost-vdpa: introduce SUSPEND backend feature bit vhost-vdpa: uAPI to suspend the device vdpa_sim: Implement suspend vdpa op Jason Wang (2): virtio_pmem: initialize provider_data through nd_region_desc virtio_pmem: set device ready in probe() Michael S. Tsirkin (1): virtio: VIRTIO_HARDEN_NOTIFICATION is broken Mike Christie (2): vhost-scsi: Fix max number of virtqueues vhost scsi: Allow user to control num virtqueues Minghao Xue (2): dt-bindings: virtio: mmio: add optional wakeup-source property virtio_mmio: add support to set IRQ of a virtio device as wakeup source Robin Murphy (1): vdpa: Use device_iommu_capable() Shigeru Yoshida (1): virtio-blk: Avoid use-after-free on suspend/resume Stefano Garzarella (11): vringh: iterate on iotlb_translate to handle large translations vdpa_sim_blk: use dev_dbg() to print errors vdpa_sim_blk: limit the number of request handled per batch vdpa_sim_blk: call vringh_complete_iotlb() also in the error path vdpa_sim_blk: set number of address spaces and virtqueue groups vdpa_sim: use max_iotlb_entries as a limit in vhost_iotlb_init tools/virtio: fix build vdpa_sim_blk: check if sector is 0 for commands other than read or write vdpa_sim_blk: make vdpasim_blk_check_range usable by other requests vdpa_sim_blk: add support for VIRTIO_BLK_T_FLUSH vdpa_sim_blk: add support for discard and write-zeroes Xie Yongji (5): vduse: Remove unnecessary spin lock protection vduse: Use memcpy_{to,from}_page() in do_bounce() vduse: Support using userspace pages as bounce buffer vduse: Support registering userspace memory for IOVA regions vduse: Support querying information of IOVA regions Xu Qiang (1): vdpa/mlx5: Use eth_broadcast_addr() to assign broadcast address Xuan Zhuo (44): remoteproc: rename len of rpoc_vring to num virtio_ring: remove the arg vq of vring_alloc_desc_extra() virtio: record the maximum queue num supported by the device. virtio: struct virtio_config_ops add callbacks for queue_reset virtio_ring: update the document of the virtqueue_detach_unused_buf for queue reset virtio_ring: extract the logic of freeing vring virtio_ring: split vring_virtqueue virtio_ring: introduce virtqueue_init() virtio_ring: split: stop __vring_new_virtqueue as export symbol virtio_ring: split: __vring_new_virtqueue() accept struct vring_virtqueue_split virtio_ring: split: introduce vring_free_split() virtio_ring: split: extract the logic of alloc queue virtio_ring: split: extract the logic of alloc state and extra virtio_ring: split: extract the logic of vring init virtio_ring: split: extract the logic of attach vring virtio_ring: split: introduce virtqueue_reinit_split() virtio_ring: split: reserve vring_align, may_reduce_num virtio_ring: split: introduce virtqueue_resize_split() virtio_ring: packed: introduce vring_free_packed virtio_ring: packed: extract the logic of alloc queue virtio_ring: packed: extract the logic of alloc state and extra virtio_ring: packed: extract the logic of vring init virtio_ring: packed: extract the logic of attach vring virtio_ring: packed: introduce virtqueue_reinit_packed() virtio_ring: packed: introduce virtqueue_resize_packed() virtio_ring: introduce virtqueue_resize() virtio_pci: struct virtio_pci_common_cfg add queue_notify_data virtio: allow to unbreak/break virtqueue individually virtio: queue_reset: add VIRTIO_F_RING_RESET virtio_ring: struct virtqueue introduce reset virtio_pci: struct virtio_pci_common_cfg add queue_reset virtio_pci: introduce helper to get/set queue reset virtio_pci: extract the logic of active vq for modern pci virtio_pci: support VIRTIO_F_RING_RESET virtio: find_vqs() add arg sizes virtio_pci: support the arg sizes of find_vqs() virtio_mmio: support the arg sizes of find_vqs() virtio: add helper virtio_find_vqs_ctx_size() virtio_net: set the default max ring size by find_vqs() virtio_net: get ringparam by virtqueue_get_vring_max_size() virtio_net: split free_unused_bufs() virtio_net: support rx queue resize virtio_net: support tx queue resize virtio_net: support set_ringparam Zhang Jiaming (1): vdpa: ifcvf: Fix spelling mistake in comments Zhu Lingshan (4): vDPA/ifcvf: get_config_size should return a value no greater than dev implementation vDPA/ifcvf: support userspace to query features and MQ of a management device vDPA: !FEATURES_OK should not block querying device config space vDPA: fix 'cast to restricted le16' warnings in vdpa.c Documentation/devicetree/bindings/virtio/mmio.yaml | 4 + arch/um/drivers/virtio_uml.c | 3 +- drivers/block/virtio_blk.c | 24 +- drivers/net/virtio_net.c | 325 +++++++- drivers/nvdimm/virtio_pmem.c | 9 +- drivers/platform/mellanox/mlxbf-tmfifo.c | 3 + drivers/remoteproc/remoteproc_core.c | 4 +- drivers/remoteproc/remoteproc_virtio.c | 13 +- drivers/s390/virtio/virtio_ccw.c | 4 + drivers/vdpa/ifcvf/ifcvf_base.c | 14 +- drivers/vdpa/ifcvf/ifcvf_base.h | 2 + drivers/vdpa/ifcvf/ifcvf_main.c | 144 ++-- drivers/vdpa/mlx5/core/mlx5_vdpa.h | 11 + drivers/vdpa/mlx5/net/mlx5_vnet.c | 175 ++++- drivers/vdpa/vdpa.c | 14 +- drivers/vdpa/vdpa_sim/vdpa_sim.c | 18 +- drivers/vdpa/vdpa_sim/vdpa_sim.h | 1 + drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 176 ++++- drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 + drivers/vdpa/vdpa_user/iova_domain.c | 102 ++- drivers/vdpa/vdpa_user/iova_domain.h | 8 + drivers/vdpa/vdpa_user/vduse_dev.c | 180 +++++ drivers/vhost/scsi.c | 85 ++- drivers/vhost/vdpa.c | 38 +- drivers/vhost/vringh.c | 78 +- drivers/virtio/Kconfig | 11 +- drivers/virtio/virtio.c | 4 +- drivers/virtio/virtio_mmio.c | 14 +- drivers/virtio/virtio_pci_common.c | 32 +- drivers/virtio/virtio_pci_common.h | 3 +- drivers/virtio/virtio_pci_legacy.c | 8 +- drivers/virtio/virtio_pci_modern.c | 153 +++- drivers/virtio/virtio_pci_modern_dev.c | 39 + drivers/virtio/virtio_ring.c | 814 +++++++++++++++------ drivers/virtio/virtio_vdpa.c | 18 +- include/linux/mlx5/mlx5_ifc_vdpa.h | 8 + include/linux/remoteproc.h | 4 +- include/linux/vdpa.h | 4 + include/linux/virtio.h | 10 + include/linux/virtio_config.h | 40 +- include/linux/virtio_pci_modern.h | 9 + include/linux/virtio_ring.h | 10 - include/uapi/linux/vduse.h | 47 ++ include/uapi/linux/vhost.h | 9 + include/uapi/linux/vhost_types.h | 2 + include/uapi/linux/virtio_config.h | 7 +- include/uapi/linux/virtio_net.h | 34 +- include/uapi/linux/virtio_pci.h | 2 + tools/virtio/linux/kernel.h | 2 +- tools/virtio/linux/vringh.h | 1 + tools/virtio/virtio_test.c | 4 +- 51 files changed, 2171 insertions(+), 556 deletions(-)