Commit 0a926fc9 authored by Zhu Lingshan's avatar Zhu Lingshan Committed by Michael S. Tsirkin
Browse files

vDPA: introduce get_vq_size to vdpa_config_ops



This commit introduces a new interface get_vq_size to
vDPA config ops, this new interface intends to report
the size of a specific virtqueue

Signed-off-by: default avatarZhu Lingshan <lingshan.zhu@intel.com>
Message-Id: <20240202163905.8834-3-lingshan.zhu@intel.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 1496c470
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -687,6 +687,14 @@ static long vhost_vdpa_vring_ioctl(struct vhost_vdpa *v, unsigned int cmd,
		if (!ops->set_group_asid)
			return -EOPNOTSUPP;
		return ops->set_group_asid(vdpa, idx, s.num);
	case VHOST_VDPA_GET_VRING_SIZE:
		if (!ops->get_vq_size)
			return -EOPNOTSUPP;
		s.index = idx;
		s.num = ops->get_vq_size(vdpa, idx);
		if (copy_to_user(argp, &s, sizeof(s)))
			return -EFAULT;
		return 0;
	case VHOST_GET_VRING_BASE:
		r = ops->get_vq_state(v->vdpa, idx, &vq_state);
		if (r)
+5 −0
Original line number Diff line number Diff line
@@ -195,6 +195,10 @@ struct vdpa_map_file {
 *				@idx: virtqueue index
 *				Returns int: irq number of a virtqueue,
 *				negative number if no irq assigned.
 * @get_vq_size:		Get the size of a specific virtqueue (optional)
 *				@vdev: vdpa device
 *				@idx: virtqueue index
 *				Return u16: the size of the virtqueue
 * @get_vq_align:		Get the virtqueue align requirement
 *				for the device
 *				@vdev: vdpa device
@@ -386,6 +390,7 @@ struct vdpa_config_ops {
	(*get_vq_notification)(struct vdpa_device *vdev, u16 idx);
	/* vq irq is not expected to be changed once DRIVER_OK is set */
	int (*get_vq_irq)(struct vdpa_device *vdev, u16 idx);
	u16 (*get_vq_size)(struct vdpa_device *vdev, u16 idx);

	/* Device ops */
	u32 (*get_vq_align)(struct vdpa_device *vdev);