> >but i thought sh_done_list returns (urb_state = -1) if it is done??? >but in the hc_interrupt... it checks whether urb_state == 0... which >means it would not try another packet???
Yes, I think I understand your concern. The sh_done_list returns a -1 when it has completed the URB, in such case, the hc_interrupt would not call send another packet. But you still have to remember in the sh_schedule_trans routine, which initiated every SOF, would continue to call even after the hc_interrupt returns. The sequence is like this -->sh_schedule_trans ------>> scan_urb_list ----------->> sh_add_packet() ->hc_interrupt ; interrupt occurred because xferdone irq. In this case, the sh_schedule_trans would be pre-empted --->sh_done_list : take care of the xferdone irq -------> sh_add_packet if urb_state >=0 ...... ->hc_interrupt ; interrupt occurred because xferdone irq. --->sh_done_list : take care of the xferdone irq ---> hc_interrupt exits when urb_state = -1; --> sh_schedules continues with the next urb after all irq has handled. Pei ------------------------------------------------------- This SF.NET email is sponsored by: FREE SSL Guide from Thawte are you planning your Web Server Security? Click here to get a FREE Thawte SSL guide and find the answers to all your SSL security issues. http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel