Commit 6d834691 authored by Jiri Pirko's avatar Jiri Pirko Committed by Michael S. Tsirkin
Browse files

virtio_pci_modern: remove admin queue serialization lock



The admin queue operations are protected by newly introduced
spin lock. To make it possible to issue parallel commands, remove the
admin queue serialization lock.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Message-Id: <20240716113552.80599-14-jiri@resnulli.us>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 4c3b54af
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -45,8 +45,6 @@ struct virtio_pci_vq_info {
struct virtio_pci_admin_vq {
	/* Virtqueue info associated with this admin queue. */
	struct virtio_pci_vq_info *info;
	/* serializing admin commands execution. */
	struct mutex cmd_lock;
	/* Protects virtqueue access. */
	spinlock_t lock;
	u64 supported_cmds;
+0 −5
Original line number Diff line number Diff line
@@ -167,12 +167,9 @@ int vp_modern_admin_cmd_exec(struct virtio_device *vdev,
		in_num++;
	}

	mutex_lock(&vp_dev->admin_vq.cmd_lock);
	ret = virtqueue_exec_admin_cmd(&vp_dev->admin_vq,
				       le16_to_cpu(cmd->opcode),
				       sgs, out_num, in_num, cmd);
	mutex_unlock(&vp_dev->admin_vq.cmd_lock);

	if (ret) {
		dev_err(&vdev->dev,
			"Failed to execute command on admin vq: %d\n.", ret);
@@ -837,7 +834,6 @@ int virtio_pci_modern_probe(struct virtio_pci_device *vp_dev)
	vp_dev->vdev.id = mdev->id;

	spin_lock_init(&vp_dev->admin_vq.lock);
	mutex_init(&vp_dev->admin_vq.cmd_lock);
	return 0;
}

@@ -845,6 +841,5 @@ void virtio_pci_modern_remove(struct virtio_pci_device *vp_dev)
{
	struct virtio_pci_modern_device *mdev = &vp_dev->mdev;

	mutex_destroy(&vp_dev->admin_vq.cmd_lock);
	vp_modern_remove(mdev);
}