> From: Jason Gunthorpe <j...@nvidia.com>
> Sent: Friday, July 14, 2023 10:42 PM
> 
> On Mon, Jul 10, 2023 at 07:59:24PM -0700, Yi Liu wrote:
> 
> > +static inline long vfio_df_ioctl_bind_iommufd(struct vfio_device_file *df,
> > +                                         struct vfio_device_bind_iommufd 
> > __user
> *arg)
> > +{
> > +   return -EOPNOTSUPP;
> > +}
> 
> This should be -ENOTTY

Okay. Since there are quite a few stub functions in the drivers/vfio/vfio.h.
Let me check the rule. All the stub functions should return -ENOTTY in
the !IS_ENABLED(CONFIG_XXX) case, if the function returns int., is it?

> > @@ -1149,6 +1151,9 @@ static long vfio_device_fops_unl_ioctl(struct file 
> > *filep,
> >     void __user *uptr = (void __user *)arg;
> >     int ret;
> >
> > +   if (cmd == VFIO_DEVICE_BIND_IOMMUFD)
> > +           return vfio_df_ioctl_bind_iommufd(df, uptr);
> > +
> 
> And this function has a mistake too:
> 
>       default:
>               if (unlikely(!device->ops->ioctl))
>                       ret = -EINVAL;
> 
> Should also be -ENOTTY
> 
> All the implementations of the ops already return -ENOTTY
> 
> However, I think this is all slightly not quite right, the proper
> return code is supposed to be ENOIOCTLCMD which vfs_ioctl() then
> translates into ENOTTY for some reason..
> 
> It looks Ok otherwise

This is not in the scope of this series. May need a separate fix patch. @Alex?

Regards,
Yi Liu

Reply via email to