Messages in this thread Patch in this message | | | From | Xie Yongji <> | Subject | [PATCH v2 4/5] vduse: Support querying IOLTB information | Date | Wed, 6 Jul 2022 13:05:02 +0800 |
| |
This introduces a new ioctl: VDUSE_IOTLB_GET_INFO to support querying IOLTB information such as bounce buffer size.
Signed-off-by: Xie Yongji <xieyongji@bytedance.com> --- drivers/vdpa/vdpa_user/vduse_dev.c | 13 +++++++++++++ include/uapi/linux/vduse.h | 17 +++++++++++++++++ 2 files changed, 30 insertions(+)
diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index 3bc27de58f46..c47a5d9765cf 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -1089,6 +1089,19 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd, ret = vduse_dev_queue_irq_work(dev, &dev->vqs[index].inject); break; } + case VDUSE_IOTLB_GET_INFO: { + struct vduse_iotlb_info iotlb; + + iotlb.bounce_iova = 0; + iotlb.bounce_size = dev->domain->bounce_size; + + ret = -EFAULT; + if (copy_to_user(argp, &iotlb, sizeof(iotlb))) + break; + + ret = 0; + break; + } default: ret = -ENOIOCTLCMD; break; diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h index 7cfe1c1280c0..c201b7a77c2c 100644 --- a/include/uapi/linux/vduse.h +++ b/include/uapi/linux/vduse.h @@ -210,6 +210,23 @@ struct vduse_vq_eventfd { */ #define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32) +/** + * struct vduse_iotlb_info - IOTLB information + * @bounce_iova: start IOVA of bounce buffer + * @bounce_size: bounce buffer size + * @reserved: for future use, needs to be initialized to zero + * + * Structure used by VDUSE_IOTLB_GET_INFO ioctl to get IOTLB information. + */ +struct vduse_iotlb_info { + __u64 bounce_iova; + __u64 bounce_size; + __u64 reserved[2]; +}; + +/* Get IOTLB information, e.g. bounce buffer size */ +#define VDUSE_IOTLB_GET_INFO _IOR(VDUSE_BASE, 0x18, struct vduse_iotlb_info) + /* The control messages definition for read(2)/write(2) on /dev/vduse/$NAME */ /** -- 2.20.1
| |