diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index dd4f177a9840a4c0823ae26ca5c177a4162ca3d1..9120df79d7036a87ededf47180696bcd217ee434 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -200,23 +200,16 @@ static int usbduxfast_ai_stop(struct comedi_device *dev, int do_unlink) return 0; } -/* - * This will cancel a running acquisition operation. - * This is called by comedi but never from inside the driver. - */ static int usbduxfast_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { struct usbduxfast_private *devpriv = dev->private; int ret; - /* force unlink of all urbs */ - if (!devpriv) { - dev_err(dev->class_dev, "%s: devpriv=NULL\n", __func__); + if (!devpriv) return -EFAULT; - } + down(&devpriv->sem); - /* unlink */ ret = usbduxfast_ai_stop(dev, 1); up(&devpriv->sem);