virtio-vdpa: Use queue id when setting vq affinity

When optional queues are skipped, pass the compressed vDPA queue id to
set_vq_affinity() so affinity is applied to the queue that was actually
created.

Signed-off-by: Xiong Weimin <xiongweimin@kylinos.cn>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <20260804092649.1344478-1-xiongweimin@kylinos.cn>
This commit is contained in:
Xiong Weimin 2026-08-04 17:26:49 +08:00 committed by Michael S. Tsirkin
parent 6519ca2351
commit ca2c2165a0

View File

@ -352,7 +352,7 @@ static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
continue;
}
vqs[i] = virtio_vdpa_setup_vq(vdev, queue_idx++, vqi->callback,
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]);
@ -360,7 +360,8 @@ static int virtio_vdpa_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
}
if (has_affinity)
ops->set_vq_affinity(vdpa, i, &masks[i]);
ops->set_vq_affinity(vdpa, queue_idx, &masks[i]);
queue_idx++;
}
cb.callback = virtio_vdpa_config_cb;