virtio-pci-modern: introduce helper to set config vector
authorJason Wang <jasowang@redhat.com>
Mon, 4 Jan 2021 06:54:49 +0000 (14:54 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 23 Feb 2021 12:52:57 +0000 (07:52 -0500)
This patch introduces vp_modern_config_vector() for setting config
vector.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20210104065503.199631-6-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/virtio/virtio_pci_modern.c

index 4be9afa..2e37bfc 100644 (file)
@@ -315,9 +315,16 @@ static void vp_reset(struct virtio_device *vdev)
        vp_synchronize_vectors(vdev);
 }
 
-static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector)
+/*
+ * vp_modern_config_vector - set the vector for config interrupt
+ * @mdev: the modern virtio-pci device
+ * @vector: the config vector
+ *
+ * Returns the config vector read from the device
+ */
+static u16 vp_modern_config_vector(struct virtio_pci_modern_device *mdev,
+                                  u16 vector)
 {
-       struct virtio_pci_modern_device *mdev = &vp_dev->mdev;
        struct virtio_pci_common_cfg __iomem *cfg = mdev->common;
 
        /* Setup the vector used for configuration events */
@@ -327,6 +334,11 @@ static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector)
        return vp_ioread16(&cfg->msix_config);
 }
 
+static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector)
+{
+       return vp_modern_config_vector(&vp_dev->mdev, vector);
+}
+
 static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
                                  struct virtio_pci_vq_info *info,
                                  unsigned index,