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