int			mem_flags 
unsigned		mem_flags 
static int intr_submit (	struct ehci_hcd		*ehci,	struct usb_host_endpoint *ep,	struct urb		*urb,	struct list_head	*qtd_list,	int			mem_flags) {	unsigned		epnum;	unsigned long		flags;	struct ehci_qh		*qh;	int			status = 0;	struct list_head	empty;	/* get endpoint and transfer/schedule data */	epnum = ep->desc.bEndpointAddress;	spin_lock_irqsave (&ehci->lock, flags);	/* get qh and force any scheduling errors */	INIT_LIST_HEAD (&empty);	qh = qh_append_tds (ehci, urb, &empty, epnum, &ep->hcpriv);	if (qh == NULL) {		status = -ENOMEM;		goto done;	}	if (qh->qh_state == QH_STATE_IDLE) {		if ((status = qh_schedule (ehci, qh)) != 0)			goto done;	}	/* then queue the urb's tds to the qh */	qh = qh_append_tds (ehci, urb, qtd_list, epnum, &ep->hcpriv);	BUG_ON (qh == NULL);	/* ... update usbfs periodic stats */	ehci_to_hcd(ehci)->self.bandwidth_int_reqs++;done:	spin_unlock_irqrestore (&ehci->lock, flags);	if (status)		qtd_list_free (ehci, urb, qtd_list);	return status;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5db539e49fc7471e23bf3c94ca304f008cb7b7f3/ehci-sched.c/clean/drivers/usb/host/ehci-sched.c