mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
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: Zhu Lingshan <lingshan.zhu@intel.com> Message-Id: <20240202163905.8834-3-lingshan.zhu@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
1496c47065
commit
0a926fc972
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user