The size of a virtqueue is a per vq configuration,
this commit allows virtio_vdpa to create
virtqueues with the actual size of a specific
vq size that supported by the backend device.

Signed-off-by: Zhu Lingshan <lingshan....@intel.com>
---
 drivers/virtio/virtio_vdpa.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
index 8d63e5923d24..e803db0da307 100644
--- a/drivers/virtio/virtio_vdpa.c
+++ b/drivers/virtio/virtio_vdpa.c
@@ -183,8 +183,11 @@ virtio_vdpa_setup_vq(struct virtio_device *vdev, unsigned 
int index,
        info = kmalloc(sizeof(*info), GFP_KERNEL);
        if (!info)
                return ERR_PTR(-ENOMEM);
+       if (ops->get_vq_size)
+               max_num = ops->get_vq_size(vdpa, index);
+       else
+               max_num = ops->get_vq_num_max(vdpa);
 
-       max_num = ops->get_vq_num_max(vdpa);
        if (max_num == 0) {
                err = -ENOENT;
                goto error_new_virtqueue;
-- 
2.39.3


Reply via email to