]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
virtio: convert find_vqs() op implementations to find_vqs_info()
authorJiri Pirko <jiri@nvidia.com>
Mon, 8 Jul 2024 07:48:01 +0000 (09:48 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 17 Jul 2024 09:20:57 +0000 (05:20 -0400)
Convert existing find_vqs() transport implementations
to use find_vqs_info() config op.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Message-Id: <20240708074814.1739223-7-jiri@resnulli.us>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
arch/um/drivers/virtio_uml.c
drivers/platform/mellanox/mlxbf-tmfifo.c
drivers/remoteproc/remoteproc_virtio.c
drivers/s390/virtio/virtio_ccw.c
drivers/virtio/virtio_mmio.c
drivers/virtio/virtio_vdpa.c

index 77faa2cf3a13f0c1c6917e412db66f25a64311d7..4cc393e903fc7243b6e97dbeb9163613b4719a92 100644 (file)
@@ -1014,8 +1014,8 @@ error_kzalloc:
 }
 
 static int vu_find_vqs(struct virtio_device *vdev, unsigned nvqs,
-                      struct virtqueue *vqs[], vq_callback_t *callbacks[],
-                      const char * const names[], const bool *ctx,
+                      struct virtqueue *vqs[],
+                      struct virtqueue_info vqs_info[],
                       struct irq_affinity *desc)
 {
        struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
@@ -1031,13 +1031,15 @@ static int vu_find_vqs(struct virtio_device *vdev, unsigned nvqs,
                return rc;
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        vqs[i] = NULL;
                        continue;
                }
 
-               vqs[i] = vu_setup_vq(vdev, queue_idx++, callbacks[i], names[i],
-                                    ctx ? ctx[i] : false);
+               vqs[i] = vu_setup_vq(vdev, queue_idx++, vqi->callback,
+                                    vqi->name, vqi->ctx);
                if (IS_ERR(vqs[i])) {
                        rc = PTR_ERR(vqs[i]);
                        goto error_setup;
@@ -1097,7 +1099,7 @@ static const struct virtio_config_ops virtio_uml_config_ops = {
        .get_status = vu_get_status,
        .set_status = vu_set_status,
        .reset = vu_reset,
-       .find_vqs = vu_find_vqs,
+       .find_vqs_info = vu_find_vqs,
        .del_vqs = vu_del_vqs,
        .get_features = vu_get_features,
        .finalize_features = vu_finalize_features,
index b8d1e32e97ebafaa1d0091d32d110b9854022ff9..3dc895cfdc4a86c5b87d6d763b048ad0bb859e29 100644 (file)
@@ -1058,9 +1058,7 @@ static void mlxbf_tmfifo_virtio_del_vqs(struct virtio_device *vdev)
 static int mlxbf_tmfifo_virtio_find_vqs(struct virtio_device *vdev,
                                        unsigned int nvqs,
                                        struct virtqueue *vqs[],
-                                       vq_callback_t *callbacks[],
-                                       const char * const names[],
-                                       const bool *ctx,
+                                       struct virtqueue_info vqs_info[],
                                        struct irq_affinity *desc)
 {
        struct mlxbf_tmfifo_vdev *tm_vdev = mlxbf_vdev_to_tmfifo(vdev);
@@ -1072,7 +1070,9 @@ static int mlxbf_tmfifo_virtio_find_vqs(struct virtio_device *vdev,
                return -EINVAL;
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        ret = -EINVAL;
                        goto error;
                }
@@ -1084,7 +1084,7 @@ static int mlxbf_tmfifo_virtio_find_vqs(struct virtio_device *vdev,
                vq = vring_new_virtqueue(i, vring->num, vring->align, vdev,
                                         false, false, vring->va,
                                         mlxbf_tmfifo_virtio_notify,
-                                        callbacks[i], names[i]);
+                                        vqi->callback, vqi->name);
                if (!vq) {
                        dev_err(&vdev->dev, "vring_new_virtqueue failed\n");
                        ret = -ENOMEM;
@@ -1175,7 +1175,7 @@ static void tmfifo_virtio_dev_release(struct device *device)
 static const struct virtio_config_ops mlxbf_tmfifo_virtio_config_ops = {
        .get_features = mlxbf_tmfifo_virtio_get_features,
        .finalize_features = mlxbf_tmfifo_virtio_finalize_features,
-       .find_vqs = mlxbf_tmfifo_virtio_find_vqs,
+       .find_vqs_info = mlxbf_tmfifo_virtio_find_vqs,
        .del_vqs = mlxbf_tmfifo_virtio_del_vqs,
        .reset = mlxbf_tmfifo_virtio_reset,
        .set_status = mlxbf_tmfifo_virtio_set_status,
index 25b66b113b69594b7edf01caff62bda8435c9bbb..870764c0ad9f0f4669e0a733e48f42f40de5cbcd 100644 (file)
@@ -182,21 +182,21 @@ static void rproc_virtio_del_vqs(struct virtio_device *vdev)
 
 static int rproc_virtio_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
                                 struct virtqueue *vqs[],
-                                vq_callback_t *callbacks[],
-                                const char * const names[],
-                                const bool * ctx,
+                                struct virtqueue_info vqs_info[],
                                 struct irq_affinity *desc)
 {
        int i, ret, queue_idx = 0;
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        vqs[i] = NULL;
                        continue;
                }
 
-               vqs[i] = rp_find_vq(vdev, queue_idx++, callbacks[i], names[i],
-                                   ctx ? ctx[i] : false);
+               vqs[i] = rp_find_vq(vdev, queue_idx++, vqi->callback,
+                                   vqi->name, vqi->ctx);
                if (IS_ERR(vqs[i])) {
                        ret = PTR_ERR(vqs[i]);
                        goto error;
@@ -327,7 +327,7 @@ static void rproc_virtio_set(struct virtio_device *vdev, unsigned int offset,
 static const struct virtio_config_ops rproc_virtio_config_ops = {
        .get_features   = rproc_virtio_get_features,
        .finalize_features = rproc_virtio_finalize_features,
-       .find_vqs       = rproc_virtio_find_vqs,
+       .find_vqs_info  = rproc_virtio_find_vqs,
        .del_vqs        = rproc_virtio_del_vqs,
        .reset          = rproc_virtio_reset,
        .set_status     = rproc_virtio_set_status,
index d6491fc84e8c54bf613ff80c30c762c0f0f714c2..fa884afff77744bf5806d6998bafc3e5c7b1b587 100644 (file)
@@ -689,9 +689,7 @@ out:
 
 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 virtqueue_info vqs_info[],
                               struct irq_affinity *desc)
 {
        struct virtio_ccw_device *vcdev = to_vc_device(vdev);
@@ -705,14 +703,15 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
                return -ENOMEM;
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        vqs[i] = NULL;
                        continue;
                }
 
-               vqs[i] = virtio_ccw_setup_vq(vdev, queue_idx++, callbacks[i],
-                                            names[i], ctx ? ctx[i] : false,
-                                            ccw);
+               vqs[i] = virtio_ccw_setup_vq(vdev, queue_idx++, vqi->callback,
+                                            vqi->name, vqi->ctx, ccw);
                if (IS_ERR(vqs[i])) {
                        ret = PTR_ERR(vqs[i]);
                        vqs[i] = NULL;
@@ -1079,7 +1078,7 @@ static const struct virtio_config_ops virtio_ccw_config_ops = {
        .get_status = virtio_ccw_get_status,
        .set_status = virtio_ccw_set_status,
        .reset = virtio_ccw_reset,
-       .find_vqs = virtio_ccw_find_vqs,
+       .find_vqs_info = virtio_ccw_find_vqs,
        .del_vqs = virtio_ccw_del_vqs,
        .bus_name = virtio_ccw_bus_name,
        .synchronize_cbs = virtio_ccw_synchronize_cbs,
index 173596589c712284c26a49e08fc430b1748cac09..57903685d50503173dfb28fec0bd0cd770df493f 100644 (file)
@@ -489,9 +489,7 @@ error_available:
 
 static int vm_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
                       struct virtqueue *vqs[],
-                      vq_callback_t *callbacks[],
-                      const char * const names[],
-                      const bool *ctx,
+                      struct virtqueue_info vqs_info[],
                       struct irq_affinity *desc)
 {
        struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
@@ -510,13 +508,15 @@ static int vm_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
                enable_irq_wake(irq);
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        vqs[i] = NULL;
                        continue;
                }
 
-               vqs[i] = vm_setup_vq(vdev, queue_idx++, callbacks[i], names[i],
-                                    ctx ? ctx[i] : false);
+               vqs[i] = vm_setup_vq(vdev, queue_idx++, vqi->callback,
+                                    vqi->name, vqi->ctx);
                if (IS_ERR(vqs[i])) {
                        vm_del_vqs(vdev);
                        return PTR_ERR(vqs[i]);
@@ -570,7 +570,7 @@ static const struct virtio_config_ops virtio_mmio_config_ops = {
        .get_status     = vm_get_status,
        .set_status     = vm_set_status,
        .reset          = vm_reset,
-       .find_vqs       = vm_find_vqs,
+       .find_vqs_info  = vm_find_vqs,
        .del_vqs        = vm_del_vqs,
        .get_features   = vm_get_features,
        .finalize_features = vm_finalize_features,
index e803db0da307a8fe1b75c8f7f5ad9c8c99393d4b..bc86d81c7cd2ec1dfbf35446af0fc8c681e1132b 100644 (file)
@@ -358,9 +358,7 @@ create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
 
 static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
                                struct virtqueue *vqs[],
-                               vq_callback_t *callbacks[],
-                               const char * const names[],
-                               const bool *ctx,
+                               struct virtqueue_info vqs_info[],
                                struct irq_affinity *desc)
 {
        struct virtio_vdpa_device *vd_dev = to_virtio_vdpa_device(vdev);
@@ -379,14 +377,15 @@ static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
        }
 
        for (i = 0; i < nvqs; ++i) {
-               if (!names[i]) {
+               struct virtqueue_info *vqi = &vqs_info[i];
+
+               if (!vqi->name) {
                        vqs[i] = NULL;
                        continue;
                }
 
-               vqs[i] = virtio_vdpa_setup_vq(vdev, queue_idx++,
-                                             callbacks[i], names[i], ctx ?
-                                             ctx[i] : false);
+               vqs[i] = virtio_vdpa_setup_vq(vdev, queue_idx++, vqi->callback,
+                                             vqi->name, vqi->ctx);
                if (IS_ERR(vqs[i])) {
                        err = PTR_ERR(vqs[i]);
                        goto err_setup_vq;
@@ -470,7 +469,7 @@ static const struct virtio_config_ops virtio_vdpa_config_ops = {
        .get_status     = virtio_vdpa_get_status,
        .set_status     = virtio_vdpa_set_status,
        .reset          = virtio_vdpa_reset,
-       .find_vqs       = virtio_vdpa_find_vqs,
+       .find_vqs_info  = virtio_vdpa_find_vqs,
        .del_vqs        = virtio_vdpa_del_vqs,
        .get_features   = virtio_vdpa_get_features,
        .finalize_features = virtio_vdpa_finalize_features,