Re: [PATCH 07/12] usb: usbtmc: Add ioctl USBTMC488_IOCTL_WAIT_SRQ

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Donnerstag, den 24.05.2018, 12:59 +0000 schrieb guido@kiener-
muenchen.de:
> Zitat von Oliver Neukum <oneukum@xxxxxxxx>:
> 
> > 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.
> > 
> > 	Regards
> > 		Oliver
> 
> Multiple threads can wait with the same or different file descriptors.
> When an SRQ interrupt occurs, all threads and file descriptors are
> informed concurrently with wake_up_interruptible_all(&data->waitq);
> The "_all" is already fixed in 02/12.

No, the problem is that you will underflow io->mutex

	Regards
		Oliver

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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux