Commit 4d9861b5 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: usbdux: tidy up usbdux_detach()

Make sure the usb intfdata is always cleared when the device is
detached.

Refactor the code to remove an indent level.

Always unlink the urbs when the device is detached.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1da43900
...@@ -1799,20 +1799,21 @@ static void usbdux_detach(struct comedi_device *dev) ...@@ -1799,20 +1799,21 @@ static void usbdux_detach(struct comedi_device *dev)
struct usb_interface *intf = comedi_to_usb_interface(dev); struct usb_interface *intf = comedi_to_usb_interface(dev);
struct usbdux_private *devpriv = dev->private; struct usbdux_private *devpriv = dev->private;
if (devpriv) {
down(&devpriv->sem);
usb_set_intfdata(intf, NULL); usb_set_intfdata(intf, NULL);
/* stop and unlink any submitted urbs */ if (!devpriv)
usbdux_pwm_stop(dev, devpriv->pwm_cmd_running); return;
usbdux_ao_stop(dev, devpriv->ao_cmd_running);
usbdux_ai_stop(dev, devpriv->ai_cmd_running); down(&devpriv->sem);
/* force unlink all urbs */
usbdux_pwm_stop(dev, 1);
usbdux_ao_stop(dev, 1);
usbdux_ai_stop(dev, 1);
usbdux_free_usb_buffers(devpriv); usbdux_free_usb_buffers(devpriv);
up(&devpriv->sem); up(&devpriv->sem);
}
} }
static struct comedi_driver usbdux_driver = { static struct comedi_driver usbdux_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment