frame = urb->start_frame; for (i = 0; i < urb->number_of_packets; i++, frame += urb->interval) { if (!urb->iso_frame_desc[i].length) continue;  
for (i = 0; i < urb->number_of_packets; i++) { 
static int uhci_submit_isochronous(struct uhci_hcd *uhci, struct urb *urb){	struct uhci_td *td;	int i, ret, frame;	int status, destination;	status = TD_CTRL_ACTIVE | TD_CTRL_IOS;	destination = (urb->pipe & PIPE_DEVEP_MASK) | usb_packetid(urb->pipe);	ret = isochronous_find_start(uhci, urb);	if (ret)		return ret;	frame = urb->start_frame;	for (i = 0; i < urb->number_of_packets; i++, frame += urb->interval) {		if (!urb->iso_frame_desc[i].length)			continue;		td = uhci_alloc_td(uhci);		if (!td)			return -ENOMEM;		uhci_add_td_to_urb(urb, td);		uhci_fill_td(td, status, destination | uhci_explen(urb->iso_frame_desc[i].length - 1),			urb->transfer_dma + urb->iso_frame_desc[i].offset);		if (i + 1 >= urb->number_of_packets)			td->status |= cpu_to_le32(TD_CTRL_IOC);		uhci_insert_td_frame_list(uhci, td, frame);	}	return -EINPROGRESS;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b81d34363c0b17c47f4ef63d5888c4f47f315d29/uhci-q.c/buggy/drivers/usb/host/uhci-q.c