Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -1799,21 +1799,22 @@ static void usbdux_detach(struct comedi_device *dev)
	struct usb_interface *intf = comedi_to_usb_interface(dev);
	struct usbdux_private *devpriv = dev->private;

	if (devpriv) {
		down(&devpriv->sem);

	usb_set_intfdata(intf, NULL);

		/* stop and unlink any submitted urbs */
		usbdux_pwm_stop(dev, devpriv->pwm_cmd_running);
		usbdux_ao_stop(dev, devpriv->ao_cmd_running);
		usbdux_ai_stop(dev, devpriv->ai_cmd_running);
	if (!devpriv)
		return;

	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);

	up(&devpriv->sem);
}
}

static struct comedi_driver usbdux_driver = {
	.driver_name	= "usbdux",