On Tue, Apr 07, 2026 at 01:34:23PM -0400, Andrew Stellman wrote:
> Fixes: af22bbe1f4a5 ("virtio: create admin queues alongside other virtqueues")and how was this tested? > > On Tue, Apr 7, 2026 at 12:26 PM Michael S. Tsirkin <[email protected]> wrote: > > On Tue, Apr 07, 2026 at 08:39:02AM -0400, Andrew Stellman wrote: > > vp_find_vqs_intx() sets up the admin virtqueue using queue_idx++ > > (a sequential counter) instead of avq->vq_index (the actual transport > > queue index). The MSI-X path in vp_find_vqs_msix() correctly uses > > avq->vq_index. When the admin VQ index does not equal the next > > sequential queue_idx value, the INTx path binds the admin VQ to the > > wrong transport queue. > > > > Use avq->vq_index to match the MSI-X path. > > > > Signed-off-by: Andrew Stellman <[email protected]> > > > Cc Jiri. fixes tag? > > > --- > > drivers/virtio/virtio_pci_common.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/ > virtio_pci_common.c > > index da97b6a..0b9d66b 100644 > > --- a/drivers/virtio/virtio_pci_common.c > > +++ b/drivers/virtio/virtio_pci_common.c > > @@ -497,7 +497,7 @@ static int vp_find_vqs_intx(struct virtio_device > *vdev, unsigned int nvqs, > > if (!avq_num) > > return 0; > > sprintf(avq->name, "avq.%u", avq->vq_index); > > - vq = vp_setup_vq(vdev, queue_idx++, vp_modern_avq_done, avq->name, > > + vq = vp_setup_vq(vdev, avq->vq_index, vp_modern_avq_done, avq-> > name, > > false, VIRTIO_MSI_NO_VECTOR, > > &vp_dev->admin_vq.info); > > if (IS_ERR(vq)) { > > -- > > 2.34.1 > >
