Commit 988f5541 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: usbduxsigma: kill all urbs before freeing them

For aesthetic reasons, kill all the urbs before freeing them.
Also, remove a redundant killing of the ai and ao urbs in the
(*detach).
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 137beb77
...@@ -1521,9 +1521,12 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp) ...@@ -1521,9 +1521,12 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp)
{ {
int i; int i;
if (usbduxsub_tmp->urbIn) {
/* force unlink all urbs */ /* force unlink all urbs */
usbdux_ai_stop(usbduxsub_tmp, 1); usbdux_ai_stop(usbduxsub_tmp, 1);
usbdux_ao_stop(usbduxsub_tmp, 1);
usbdux_pwm_stop(usbduxsub_tmp, 1);
if (usbduxsub_tmp->urbIn) {
for (i = 0; i < usbduxsub_tmp->numOfInBuffers; i++) { for (i = 0; i < usbduxsub_tmp->numOfInBuffers; i++) {
kfree(usbduxsub_tmp->urbIn[i]->transfer_buffer); kfree(usbduxsub_tmp->urbIn[i]->transfer_buffer);
usbduxsub_tmp->urbIn[i]->transfer_buffer = NULL; usbduxsub_tmp->urbIn[i]->transfer_buffer = NULL;
...@@ -1534,8 +1537,6 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp) ...@@ -1534,8 +1537,6 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp)
usbduxsub_tmp->urbIn = NULL; usbduxsub_tmp->urbIn = NULL;
} }
if (usbduxsub_tmp->urbOut) { if (usbduxsub_tmp->urbOut) {
/* force unlink all urbs */
usbdux_ao_stop(usbduxsub_tmp, 1);
for (i = 0; i < usbduxsub_tmp->numOfOutBuffers; i++) { for (i = 0; i < usbduxsub_tmp->numOfOutBuffers; i++) {
if (usbduxsub_tmp->urbOut[i]->transfer_buffer) { if (usbduxsub_tmp->urbOut[i]->transfer_buffer) {
kfree(usbduxsub_tmp-> kfree(usbduxsub_tmp->
...@@ -1552,8 +1553,6 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp) ...@@ -1552,8 +1553,6 @@ static void tidy_up(struct usbduxsigma_private *usbduxsub_tmp)
usbduxsub_tmp->urbOut = NULL; usbduxsub_tmp->urbOut = NULL;
} }
if (usbduxsub_tmp->urbPwm) { if (usbduxsub_tmp->urbPwm) {
/* force unlink urb */
usbdux_pwm_stop(usbduxsub_tmp, 1);
kfree(usbduxsub_tmp->urbPwm->transfer_buffer); kfree(usbduxsub_tmp->urbPwm->transfer_buffer);
usbduxsub_tmp->urbPwm->transfer_buffer = NULL; usbduxsub_tmp->urbPwm->transfer_buffer = NULL;
usb_free_urb(usbduxsub_tmp->urbPwm); usb_free_urb(usbduxsub_tmp->urbPwm);
...@@ -1849,10 +1848,6 @@ static void usbduxsigma_detach(struct comedi_device *dev) ...@@ -1849,10 +1848,6 @@ static void usbduxsigma_detach(struct comedi_device *dev)
if (!devpriv) if (!devpriv)
return; return;
/* stop any running commands */
usbdux_ai_stop(devpriv, devpriv->ai_cmd_running);
usbdux_ao_stop(devpriv, devpriv->ao_cmd_running);
usb_set_intfdata(intf, NULL); usb_set_intfdata(intf, NULL);
down(&devpriv->sem); down(&devpriv->sem);
......
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