patch-2.4.22 linux-2.4.22/drivers/usb/host/usb-ohci.c

Next file: linux-2.4.22/drivers/usb/host/usb-uhci.c
Previous file: linux-2.4.22/drivers/usb/host/uhci-debug.h
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/drivers/usb/host/usb-ohci.c linux-2.4.22/drivers/usb/host/usb-ohci.c
@@ -490,13 +490,20 @@
 				usb_pipeout (urb->pipe)
 					? PCI_DMA_TODEVICE
 					: PCI_DMA_FROMDEVICE);
-			urb->complete (urb);
 
-			/* implicitly requeued */
-  			urb->actual_length = 0;
-			urb->status = -EINPROGRESS;
-			td_submit_urb (urb);
-  			break;
+			if (urb->interval) {
+				urb->complete (urb);
+ 
+				/* implicitly requeued */
+				urb->actual_length = 0;
+				urb->status = -EINPROGRESS;
+				td_submit_urb (urb);
+			} else {
+				urb_rm_priv(urb);
+				urb->complete (urb);
+			}
+   			break;
+
   			
 		case PIPE_ISOCHRONOUS:
 			for (urbt = urb->next; urbt && (urbt != urb); urbt = urbt->next);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)