On Wed, May 23, 2018 at 02:08:27PM +0200, Oliver Neukum wrote:
> Am Donnerstag, den 17.05.2018, 19:03 +0200 schrieb Guido Kiener:
> > +static int usbtmc488_ioctl_wait_srq(struct usbtmc_file_data *file_data,
> > +                                   unsigned int __user *arg)
> > +{
> > +       struct usbtmc_device_data *data = file_data->data;
> > +       struct device *dev = &data->intf->dev;
> > +       int rv;
> > +       unsigned int timeout;
> > +       unsigned long expire;
> > +
> > +       if (!data->iin_ep_present) {
> > +               dev_dbg(dev, "no interrupt endpoint present\n");
> > +               return -EFAULT;
> > +       }
> > +
> > +       if (get_user(timeout, arg))
> > +               return -EFAULT;
> > +
> > +       expire = msecs_to_jiffies(timeout);
> > +
> > +       mutex_unlock(&data->io_mutex);
> 
> There is such a thing as threads sharing file descriptors.
> That leads to the question what happens to the mutex if this
> ioctl() is called multiple times.

Processes can share file descriptors as well, no need to mess with a
thread :)

good catch.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to