The function of kvm_vfio_group_set_spapr_tce and kvm_vfio_group_del use fd indirectly.But,it only be used for fd.file. So,we can directly use the struct of file instead. Signed-off-by: Deming Wang <wangdeming@xxxxxxxxxx> --- virt/kvm/vfio.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c index ce1b01d02c51..3be84d82f905 100644 --- a/virt/kvm/vfio.c +++ b/virt/kvm/vfio.c @@ -178,11 +178,11 @@ static int kvm_vfio_group_del(struct kvm_device *dev, unsigned int fd) { struct kvm_vfio *kv = dev->private; struct kvm_vfio_group *kvg; - struct fd f; + struct file *filp; int ret; - f = fdget(fd); - if (!f.file) + filp = fget(fd); + if (!filp) return -EBADF; ret = -ENOENT; @@ -190,7 +190,7 @@ static int kvm_vfio_group_del(struct kvm_device *dev, unsigned int fd) mutex_lock(&kv->lock); list_for_each_entry(kvg, &kv->group_list, node) { - if (kvg->file != f.file) + if (kvg->file != filp) continue; list_del(&kvg->node); @@ -207,7 +207,7 @@ static int kvm_vfio_group_del(struct kvm_device *dev, unsigned int fd) mutex_unlock(&kv->lock); - fdput(f); + fput(filp); kvm_vfio_update_coherency(dev); @@ -221,14 +221,14 @@ static int kvm_vfio_group_set_spapr_tce(struct kvm_device *dev, struct kvm_vfio_spapr_tce param; struct kvm_vfio *kv = dev->private; struct kvm_vfio_group *kvg; - struct fd f; + struct file *filp; int ret; if (copy_from_user(¶m, arg, sizeof(struct kvm_vfio_spapr_tce))) return -EFAULT; - f = fdget(param.groupfd); - if (!f.file) + filp = fget(param.groupfd); + if (!filp) return -EBADF; ret = -ENOENT; @@ -238,13 +238,13 @@ static int kvm_vfio_group_set_spapr_tce(struct kvm_device *dev, list_for_each_entry(kvg, &kv->group_list, node) { struct iommu_group *grp; - if (kvg->file != f.file) + if (kvg->file != filp) continue; grp = kvm_vfio_file_iommu_group(kvg->file); if (WARN_ON_ONCE(!grp)) { ret = -EIO; - goto err_fdput; + goto err_fput; } ret = kvm_spapr_tce_attach_iommu_group(dev->kvm, param.tablefd, @@ -252,9 +252,9 @@ static int kvm_vfio_group_set_spapr_tce(struct kvm_device *dev, break; } -err_fdput: +err_fput: mutex_unlock(&kv->lock); - fdput(f); + fput(filp); return ret; } #endif -- 2.27.0