speedtch usbatm.c,1.35,1.36
Duncan Sands
duncan at infradead.org
Thu May 5 04:26:47 EDT 2005
Update of /home/cvs/speedtch
In directory phoenix.infradead.org:/tmp/cvs-serv14661
Modified Files:
usbatm.c
Log Message:
Since the urb completion handlers can schedule the timer, the del_timer_sync
has to be done after killing the urbs (the urbs won't be resubmitted after
the kill because they are only submitted from the tasklet and that is disabled).
I moved the call to atm_stop further down while I was there for no real reason,
just that it felt more logical.
Index: usbatm.c
===================================================================
RCS file: /home/cvs/speedtch/usbatm.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- usbatm.c 4 May 2005 07:41:51 -0000 1.35
+++ usbatm.c 5 May 2005 08:26:43 -0000 1.36
@@ -1159,17 +1159,17 @@
tasklet_disable(&instance->rx_channel.tasklet);
tasklet_disable(&instance->tx_channel.tasklet);
+ for (i = 0; i < num_rcv_urbs + num_snd_urbs; i++)
+ usb_kill_urb(instance->transceivers[i].urb);
+
del_timer_sync(&instance->rx_channel.delay);
del_timer_sync(&instance->tx_channel.delay);
+ flush_scheduled_work(); /* in case we scheduled clear_halt */
+
if (instance->atm_dev && instance->driver->atm_stop)
instance->driver->atm_stop(instance, instance->atm_dev);
- for (i = 0; i < num_rcv_urbs + num_snd_urbs; i++)
- usb_kill_urb(instance->transceivers[i].urb);
-
- flush_scheduled_work(); /* in case we scheduled clear_halt */
-
if (instance->driver->unbind)
instance->driver->unbind(instance, intf);
More information about the Usbatm-commits
mailing list