Subject: [GIT PULL] virtio: features, fixes, cleanups

From: "Michael S. Tsirkin" <[email-masked]>
Date: Mon, 3 Jul 2023 12:32:56 -0400

Note: dropped some commits at the last moment, I did verify we get
the same code in the end as what was in linux next for a while now.

The following changes since commit 6995e2de6891c724bfeb2db33d7b87775f913ad1:

  Linux 6.4 (2023-06-25 16:29:58 -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 9e396a2f434f829fb3b98a24bb8db5429320589d:

  vhost: Make parameter name match of vhost_get_vq_desc() (2023-07-03 12:15:15 -0400)

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

resume support in vdpa/solidrun
structure size optimizations in virtio_pci
new pds_vdpa driver
immediate initialization mechanism for vdpa/ifcvf
interrupt bypass for vdpa/mlx5
multiple worker support for vhost
viirtio net in Intel F2000X-PL support for vdpa/ifcvf

fixes, cleanups all over the place

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

----------------------------------------------------------------
Alvaro Karsz (1):
      vdpa/snet: implement the resume vDPA callback

Dragos Tatulea (1):
      virtio-vdpa: Fix unchecked call to NULL set_vq_affinity

Eli Cohen (1):
      vdpa/mlx5: Support interrupt bypassing

Feng Liu (1):
      virtio_pci: Optimize virtio_pci_device structure size

Krzysztof Kozlowski (1):
      vdpa: solidrun: constify pointers to hwmon_channel_info

Maxime Coquelin (1):
      vduse: fix NULL pointer dereference

Mike Christie (17):
      vhost: create worker at end of vhost_dev_set_owner
      vhost: dynamically allocate vhost_worker
      vhost: add vhost_worker pointer to vhost_virtqueue
      vhost, vhost_net: add helper to check if vq has work
      vhost: take worker or vq instead of dev for queueing
      vhost: take worker or vq for flushing
      vhost: convert poll work to be vq based
      vhost_sock: convert to vhost_vq_work_queue
      vhost_scsi: make SCSI cmd completion per vq
      vhost_scsi: convert to vhost_vq_work_queue
      vhost_scsi: flush IO vqs then send TMF rsp
      vhost: remove vhost_work_queue
      vhost: add helper to parse userspace vring state/file
      vhost: replace single worker pointer with xarray
      vhost: allow userspace to create workers
      vhost_scsi: add support for worker ioctls
      vhost: Allow worker switching while work is queueing

Peng Fan (1):
      tools/virtio: fix build break for aarch64

Shannon Nelson (11):
      virtio: allow caller to override device id in vp_modern
      virtio: allow caller to override device DMA mask in vp_modern
      pds_vdpa: Add new vDPA driver for AMD/Pensando DSC
      pds_vdpa: move enum from common to adminq header
      pds_vdpa: new adminq entries
      pds_vdpa: get vdpa management info
      pds_vdpa: virtio bar setup for vdpa
      pds_vdpa: add vdpa config client commands
      pds_vdpa: add support for vdpa and vdpamgmt interfaces
      pds_vdpa: subscribe to the pds_core events
      pds_vdpa: pds_vdps.rst and Kconfig

Simon Horman (1):
      virtio: Add missing documentation for structure fields

Xianting Tian (4):
      virtio-crypto: call scheduler when we free unused buffs
      virtio-console: call scheduler when we free unused buffs
      virtio_bt: call scheduler when we free unused buffs
      vhost: Make parameter name match of vhost_get_vq_desc()

Zhu Lingshan (8):
      vDPA/ifcvf: virt queue ops take immediate actions
      vDPA/ifcvf: get_driver_features from virtio registers
      vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status
      vDPA/ifcvf: synchronize irqs in the reset routine
      vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED
      vDPA/ifcvf: dynamic allocate vq data stores
      vDPA/ifcvf: detect and report max allowed vq size
      vDPA/ifcvf: implement new accessors for vq_state

 .../device_drivers/ethernet/amd/pds_vdpa.rst       |  85 +++
 .../networking/device_drivers/ethernet/index.rst   |   1 +
 MAINTAINERS                                        |   4 +
 drivers/bluetooth/virtio_bt.c                      |   1 +
 drivers/char/virtio_console.c                      |   1 +
 drivers/crypto/virtio/virtio_crypto_core.c         |   1 +
 drivers/vdpa/Kconfig                               |  10 +
 drivers/vdpa/Makefile                              |   1 +
 drivers/vdpa/ifcvf/ifcvf_base.c                    | 215 +++---
 drivers/vdpa/ifcvf/ifcvf_base.h                    |  48 +-
 drivers/vdpa/ifcvf/ifcvf_main.c                    | 108 +--
 drivers/vdpa/mlx5/net/mlx5_vnet.c                  | 165 ++++-
 drivers/vdpa/mlx5/net/mlx5_vnet.h                  |  15 +
 drivers/vdpa/pds/Makefile                          |  10 +
 drivers/vdpa/pds/aux_drv.c                         | 140 ++++
 drivers/vdpa/pds/aux_drv.h                         |  26 +
 drivers/vdpa/pds/cmds.c                            | 185 +++++
 drivers/vdpa/pds/cmds.h                            |  18 +
 drivers/vdpa/pds/debugfs.c                         | 289 ++++++++
 drivers/vdpa/pds/debugfs.h                         |  17 +
 drivers/vdpa/pds/vdpa_dev.c                        | 769 +++++++++++++++++++++
 drivers/vdpa/pds/vdpa_dev.h                        |  49 ++
 drivers/vdpa/solidrun/snet_ctrl.c                  |   6 +
 drivers/vdpa/solidrun/snet_hwmon.c                 |   2 +-
 drivers/vdpa/solidrun/snet_main.c                  |  15 +
 drivers/vdpa/solidrun/snet_vdpa.h                  |   1 +
 drivers/vdpa/vdpa_user/vduse_dev.c                 |   6 +-
 drivers/vhost/net.c                                |   8 +-
 drivers/vhost/scsi.c                               | 103 +--
 drivers/vhost/vhost.c                              | 425 ++++++++++--
 drivers/vhost/vhost.h                              |  24 +-
 drivers/vhost/vsock.c                              |   4 +-
 drivers/virtio/virtio_pci_common.h                 |   7 +-
 drivers/virtio/virtio_pci_modern_dev.c             |  33 +-
 drivers/virtio/virtio_vdpa.c                       |   4 +-
 include/linux/pds/pds_adminq.h                     | 247 +++++++
 include/linux/pds/pds_common.h                     |  21 +-
 include/linux/virtio.h                             |   5 +-
 include/linux/virtio_pci_modern.h                  |   6 +
 include/uapi/linux/vhost.h                         |  31 +
 include/uapi/linux/vhost_types.h                   |  16 +
 tools/virtio/Makefile                              |  13 +-
 42 files changed, 2777 insertions(+), 358 deletions(-)
 create mode 100644 Documentation/networking/device_drivers/ethernet/amd/pds_vdpa.rst
 create mode 100644 drivers/vdpa/pds/Makefile
 create mode 100644 drivers/vdpa/pds/aux_drv.c
 create mode 100644 drivers/vdpa/pds/aux_drv.h
 create mode 100644 drivers/vdpa/pds/cmds.c
 create mode 100644 drivers/vdpa/pds/cmds.h
 create mode 100644 drivers/vdpa/pds/debugfs.c
 create mode 100644 drivers/vdpa/pds/debugfs.h
 create mode 100644 drivers/vdpa/pds/vdpa_dev.c
 create mode 100644 drivers/vdpa/pds/vdpa_dev.h