Olav:

While going through the HCDs, I found this possible bug in your driver.  
Do you agree that the patch below is needed?  If yes, then I will fold 
it in with the new urb->status updates.

Alan Stern


Index: usb-2.6/drivers/usb/host/isp116x-hcd.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/isp116x-hcd.c
+++ usb-2.6/drivers/usb/host/isp116x-hcd.c
@@ -583,12 +583,15 @@ static void finish_atl_transfers(struct 
        unpack_fifo(isp116x);
        postproc_atl_queue(isp116x);
        for (ep = isp116x->atl_active; ep; ep = ep->active) {
+               if (list_empty(&ep->hep->urb_list))
+                       continue;
                urb =
                    container_of(ep->hep->urb_list.next, struct urb, urb_list);
+
                /* USB_PID_ACK check here avoids finishing of
                   control transfers, for which TD_DATAUNDERRUN
                   occured, while URB_SHORT_NOT_OK was set */
-               if (urb && urb->status != -EINPROGRESS
+               if (urb->status != -EINPROGRESS
                    && ep->nextpid != USB_PID_ACK)
                        finish_request(isp116x, ep, urb);
        }


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to