Thread (56 messages) 56 messages, 3 authors, 2021-03-11

Re: Re: [RFC v4 07/11] vduse: Introduce VDUSE - vDPA Device in Userspace

From: Yongji Xie <hidden>
Date: 2021-03-11 02:29:53
Also in: kvm, linux-fsdevel

On Wed, Mar 10, 2021 at 8:58 PM Jason Wang [off-list ref] wrote:

On 2021/2/23 7:50 下午, Xie Yongji wrote:
quoted
+
+     switch (cmd) {
+     case VDUSE_IOTLB_GET_FD: {
+             struct vduse_iotlb_entry entry;
+             struct vhost_iotlb_map *map;
+             struct vdpa_map_file *map_file;
+             struct file *f = NULL;
+
+             ret = -EFAULT;
+             if (copy_from_user(&entry, argp, sizeof(entry)))
+                     break;
+
+             spin_lock(&dev->iommu_lock);
+             map = vhost_iotlb_itree_first(dev->iommu, entry.start,
+                                           entry.last);
+             if (map) {
+                     map_file = (struct vdpa_map_file *)map->opaque;
+                     f = get_file(map_file->file);
+                     entry.offset = map_file->offset;
+                     entry.start = map->start;
+                     entry.last = map->last;
+                     entry.perm = map->perm;
+             }
+             spin_unlock(&dev->iommu_lock);
+             if (!f) {
+                     ret = -EINVAL;
+                     break;
+             }
+             if (copy_to_user(argp, &entry, sizeof(entry))) {
+                     fput(f);
+                     ret = -EFAULT;
+                     break;
+             }
+             ret = get_unused_fd_flags(perm_to_file_flags(entry.perm));
+             if (ret < 0) {
+                     fput(f);
+                     break;
+             }
+             fd_install(ret, f);

So at least we need to use receice_fd_user() here to give a chance to be
hooked into security module.
Good point. Will do it in v5.

Thanks,
Yongji
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help