[PATCH vhost v7 3/6] virtio: find_vqs: pass struct instead of multi parameters
Halil Pasic
pasic at linux.ibm.com
Tue Apr 2 13:35:18 PDT 2024
On Thu, 28 Mar 2024 16:03:45 +0800
Xuan Zhuo <xuanzhuo at linux.alibaba.com> wrote:
> --- a/drivers/s390/virtio/virtio_ccw.c
> +++ b/drivers/s390/virtio/virtio_ccw.c
> @@ -499,9 +499,8 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
> }
>
> static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> - int i, vq_callback_t *callback,
> - const char *name, bool ctx,
> - struct ccw1 *ccw)
> + int i, struct ccw1 *ccw,
> + struct virtio_vq_config *cfg)
> {
> struct virtio_ccw_device *vcdev = to_vc_device(vdev);
> bool (*notify)(struct virtqueue *vq);
> @@ -538,8 +537,11 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> }
> may_reduce = vcdev->revision > 0;
> vq = vring_create_virtqueue(i, info->num, KVM_VIRTIO_CCW_RING_ALIGN,
> - vdev, true, may_reduce, ctx,
> - notify, callback, name);
> + vdev, true, may_reduce,
> + cfg->ctx ? cfg->ctx[i] : false,
> + notify,
> + cfg->callbacks[i],
> + cfg->names[i]);
>
> if (!vq) {
> /* For now, we fail if we can't get the requested size. */
> @@ -650,15 +652,13 @@ static int virtio_ccw_register_adapter_ind(struct virtio_ccw_device *vcdev,
> return ret;
> }
>
> -static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
> - struct virtqueue *vqs[],
> - vq_callback_t *callbacks[],
> - const char * const names[],
> - const bool *ctx,
> - struct irq_affinity *desc)
> +static int virtio_ccw_find_vqs(struct virtio_device *vdev,
> + struct virtio_vq_config *cfg)
> {
> struct virtio_ccw_device *vcdev = to_vc_device(vdev);
> + struct virtqueue **vqs = cfg->vqs;
> unsigned long *indicatorp = NULL;
> + unsigned int nvqs = cfg->nvqs;
> int ret, i;
> struct ccw1 *ccw;
>
> @@ -667,14 +667,12 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
> return -ENOMEM;
>
> for (i = 0; i < nvqs; ++i) {
> - if (!names[i]) {
> + if (!cfg->names[i]) {
> ret = -EINVAL;
> goto out;
> }
>
> - vqs[i] = virtio_ccw_setup_vq(vdev, i, callbacks[i],
> - names[i], ctx ? ctx[i] : false,
> - ccw);
> + vqs[i] = virtio_ccw_setup_vq(vdev, i, ccw, cfg);
> if (IS_ERR(vqs[i])) {
> ret = PTR_ERR(vqs[i]);
> vqs[i] = NULL;
For the virtio-ccw part:
Acked-by: Halil Pasic <pasic at linux.ibm.com>
More information about the linux-um
mailing list