This pathset is splited from the http://lore.kernel.org/all/20240229072044.77388-1-xuanzhuo@xxxxxxxxxxxxxxxxx That may needs some cycles to discuss. But that notifies too many people. But just the four commits need to notify so many people. And four commits are independent. So I split that patch set, let us review these first. The patch set try to refactor the params of find_vqs(). Then we can just change the structure, when introducing new features. Thanks. v8: 1. rebase the vhost branch v7: 1. fix two bugs. @Jason v6: 1. virtio_balloon: a single variable for both purposes. 2. if names[i] is null, return error v5: 1. virtio_balloon: follow David Hildenbrand's suggest http://lore.kernel.org/all/3620be9c-e288-4ff2-a7be-1fcf806e6e6e@xxxxxxxxxx 2. fix bug of the reference of "cfg_idx" http://lore.kernel.org/all/202403222227.Sdp23Lcb-lkp@xxxxxxxxx v4: 1. remove support for names array entries being null 2. remove cfg_idx from virtio_vq_config v3: 1. fix the bug: "assignment of read-only location '*cfg.names'" v2: 1. add kerneldoc for "struct vq_transport_config" @ilpo.jarvinen v1: 1. fix some comments from ilpo.jarvinen@xxxxxxxxxxxxxxx Xuan Zhuo (6): virtio_balloon: remove the dependence where names[] is null virtio: remove support for names array entries being null. virtio: find_vqs: pass struct instead of multi parameters virtio: vring_create_virtqueue: pass struct instead of multi parameters virtio: vring_new_virtqueue(): pass struct instead of multi parameters virtio_ring: simplify the parameters of the funcs related to vring_create/new_virtqueue() arch/um/drivers/virtio_uml.c | 36 +++-- drivers/platform/mellanox/mlxbf-tmfifo.c | 23 +-- drivers/remoteproc/remoteproc_virtio.c | 37 +++-- drivers/s390/virtio/virtio_ccw.c | 38 ++--- drivers/virtio/virtio_balloon.c | 48 +++---- drivers/virtio/virtio_mmio.c | 36 +++-- drivers/virtio/virtio_pci_common.c | 69 ++++----- drivers/virtio/virtio_pci_common.h | 9 +- drivers/virtio/virtio_pci_legacy.c | 16 ++- drivers/virtio/virtio_pci_modern.c | 37 +++-- drivers/virtio/virtio_ring.c | 173 ++++++++--------------- drivers/virtio/virtio_vdpa.c | 51 ++++--- include/linux/virtio_config.h | 76 +++++++--- include/linux/virtio_ring.h | 93 +++++++----- tools/virtio/virtio_test.c | 4 +- tools/virtio/vringh_test.c | 28 ++-- 16 files changed, 382 insertions(+), 392 deletions(-) -- 2.32.0.3.g01195cf9f