set_current_state (TASK_UNINTERRUPTIBLE); schedule_timeout (1); 
schedule_timeout_uninterruptible(1); 
ohci_endpoint_disable (struct usb_hcd *hcd, struct usb_host_endpoint *ep){	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);	unsigned long		flags;	struct ed		*ed = ep->hcpriv;	unsigned		limit = 1000;	/* ASSERT:  any requests/urbs are being unlinked */	/* ASSERT:  nobody can be submitting urbs for this any more */	if (!ed)		return;rescan:	spin_lock_irqsave (&ohci->lock, flags);	if (!HC_IS_RUNNING (hcd->state)) {sanitize:		ed->state = ED_IDLE;		finish_unlinks (ohci, 0, NULL);	}	switch (ed->state) {	case ED_UNLINK:		/* wait for hw to finish? */		/* major IRQ delivery trouble loses INTR_SF too... */		if (limit-- == 0) {			ohci_warn (ohci, "IRQ INTR_SF lossage\n");			goto sanitize;		}		spin_unlock_irqrestore (&ohci->lock, flags);		set_current_state (TASK_UNINTERRUPTIBLE);		schedule_timeout (1);		goto rescan;	case ED_IDLE:		/* fully unlinked */		if (list_empty (&ed->td_list)) {			td_free (ohci, ed->dummy);			ed_free (ohci, ed);			break;		}		/* else FALL THROUGH */	default:		/* caller was supposed to have unlinked any requests;		 * that's not our job.  can't recover; must leak ed.		 */		ohci_err (ohci, "leak ed %p (#%02x) state %d%s\n",			ed, ep->desc.bEndpointAddress, ed->state,			list_empty (&ed->td_list) ? "" : " (has tds)");		td_free (ohci, ed->dummy);		break;	}	ep->hcpriv = NULL;	spin_unlock_irqrestore (&ohci->lock, flags);	return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/22c438632850c0d6257b45c90afed0cea6953afc/ohci-hcd.c/buggy/drivers/usb/host/ohci-hcd.c