Skip to content

Commit 4199107

Browse files
Jiri Pirkomstsirkin
authored andcommitted
virtio_pci_modern: treat vp_dev->admin_vq.info.vq pointer as static
It is guaranteed by the virtio_pci and PCI layers that none of the VFs is probed before setup_vq() is called for admin queue and after del_vq() is called for admin queue. Therefore treat vp_dev->admin_vq.info.vq as static, don't null it and don't take cmd lock during assign. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Message-Id: <20240716113552.80599-7-jiri@resnulli.us> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
1 parent 06909a4 commit 4199107

File tree

2 files changed

+2
-11
lines changed

2 files changed

+2
-11
lines changed

drivers/virtio/virtio_pci_common.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ struct virtio_pci_vq_info {
4545
struct virtio_pci_admin_vq {
4646
/* Virtqueue info associated with this admin queue. */
4747
struct virtio_pci_vq_info info;
48-
/* serializing admin commands execution and virtqueue deletion */
48+
/* serializing admin commands execution. */
4949
struct mutex cmd_lock;
5050
u64 supported_cmds;
5151
/* Name of the admin queue: avq.$vq_index. */

drivers/virtio/virtio_pci_modern.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -580,11 +580,8 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
580580
goto err;
581581
}
582582

583-
if (is_avq) {
584-
mutex_lock(&vp_dev->admin_vq.cmd_lock);
583+
if (is_avq)
585584
vp_dev->admin_vq.info.vq = vq;
586-
mutex_unlock(&vp_dev->admin_vq.cmd_lock);
587-
}
588585

589586
return vq;
590587

@@ -620,12 +617,6 @@ static void del_vq(struct virtio_pci_vq_info *info)
620617
struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev);
621618
struct virtio_pci_modern_device *mdev = &vp_dev->mdev;
622619

623-
if (vp_is_avq(&vp_dev->vdev, vq->index)) {
624-
mutex_lock(&vp_dev->admin_vq.cmd_lock);
625-
vp_dev->admin_vq.info.vq = NULL;
626-
mutex_unlock(&vp_dev->admin_vq.cmd_lock);
627-
}
628-
629620
if (vp_dev->msix_enabled)
630621
vp_modern_queue_vector(mdev, vq->index,
631622
VIRTIO_MSI_NO_VECTOR);

0 commit comments

Comments
 (0)