virtio: convert find_vqs() op implementations to find_vqs_info()
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>
This commit is contained in:
parent
ad9a12576b
commit
3c93b576e0
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user