virtio-pci library: switch to use vp_modern_map_vq_notify()
authorJason Wang <jasowang@redhat.com>
Thu, 15 Apr 2021 07:31:42 +0000 (03:31 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 3 May 2021 08:55:51 +0000 (04:55 -0400)
This patch switch to use vp_modern_map_notify() for virtio-pci
library.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20210415073147.19331-3-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
drivers/virtio/virtio_pci_modern.c

index fbd4ebc..29607d9 100644 (file)
@@ -192,7 +192,7 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
 
        struct virtio_pci_modern_device *mdev = &vp_dev->mdev;
        struct virtqueue *vq;
-       u16 num, off;
+       u16 num;
        int err;
 
        if (index >= vp_modern_get_num_queues(mdev))
@@ -208,9 +208,6 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
                return ERR_PTR(-EINVAL);
        }
 
-       /* get offset of notification word for this vq */
-       off = vp_modern_get_queue_notify_off(mdev, index);
-
        info->msix_vector = msix_vec;
 
        /* create the vring */
@@ -227,27 +224,7 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
                                virtqueue_get_avail_addr(vq),
                                virtqueue_get_used_addr(vq));
 
-       if (mdev->notify_base) {
-               /* offset should not wrap */
-               if ((u64)off * mdev->notify_offset_multiplier + 2
-                   > mdev->notify_len) {
-                       dev_warn(&mdev->pci_dev->dev,
-                                "bad notification offset %u (x %u) "
-                                "for queue %u > %zd",
-                                off, mdev->notify_offset_multiplier,
-                                index, mdev->notify_len);
-                       err = -EINVAL;
-                       goto err_map_notify;
-               }
-               vq->priv = (void __force *)mdev->notify_base +
-                       off * mdev->notify_offset_multiplier;
-       } else {
-               vq->priv = (void __force *)vp_modern_map_capability(mdev,
-                                                         mdev->notify_map_cap, 2, 2,
-                                                         off * mdev->notify_offset_multiplier, 2,
-                                                         NULL);
-       }
-
+       vq->priv = vp_modern_map_vq_notify(mdev, index);
        if (!vq->priv) {
                err = -ENOMEM;
                goto err_map_notify;