vhost: vdpa: report iova range
This patch introduces a new ioctl for vhost-vdpa device that can report the iova range by the device. For device that implements get_iova_range() method, we fetch it from the vDPA device. If device doesn't implement get_iova_range() but depends on platform IOMMU, we will query via DOMAIN_ATTR_GEOMETRY, otherwise [0, ULLONG_MAX] is assumed. For safety, this patch also rules out the map request which is not in the valid range. Signed-off-by: Jason Wang <jasowang@redhat.com> Link: https://lore.kernel.org/r/20201023090043.14430-3-jasowang@redhat.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
3f1b623a1b
commit
1b48dc03e5
3 changed files with 54 additions and 0 deletions
|
|
@ -146,4 +146,8 @@
|
|||
|
||||
/* Set event fd for config interrupt*/
|
||||
#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)
|
||||
|
||||
/* Get the valid iova range */
|
||||
#define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, \
|
||||
struct vhost_vdpa_iova_range)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -138,6 +138,15 @@ struct vhost_vdpa_config {
|
|||
__u8 buf[0];
|
||||
};
|
||||
|
||||
/* vhost vdpa IOVA range
|
||||
* @first: First address that can be mapped by vhost-vDPA
|
||||
* @last: Last address that can be mapped by vhost-vDPA
|
||||
*/
|
||||
struct vhost_vdpa_iova_range {
|
||||
__u64 first;
|
||||
__u64 last;
|
||||
};
|
||||
|
||||
/* Feature bits */
|
||||
/* Log all write descriptors. Can be changed while device is active. */
|
||||
#define VHOST_F_LOG_ALL 26
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue