struct urb *urb, int mem_flags) 
struct urb *urb, unsigned mem_flags) 
static int uhci_urb_enqueue(struct usb_hcd *hcd,		struct usb_host_endpoint *ep,		struct urb *urb, int mem_flags){	int ret;	struct uhci_hcd *uhci = hcd_to_uhci(hcd);	unsigned long flags;	struct urb *eurb;	int bustime;	spin_lock_irqsave(&uhci->lock, flags);	ret = urb->status;	if (ret != -EINPROGRESS)		/* URB already unlinked! */		goto out;	eurb = uhci_find_urb_ep(uhci, urb);	if (!uhci_alloc_urb_priv(uhci, urb)) {		ret = -ENOMEM;		goto out;	}	switch (usb_pipetype(urb->pipe)) {	case PIPE_CONTROL:		ret = uhci_submit_control(uhci, urb, eurb);		break;	case PIPE_INTERRUPT:		if (!eurb) {			bustime = usb_check_bandwidth(urb->dev, urb);			if (bustime < 0)				ret = bustime;			else {				ret = uhci_submit_interrupt(uhci, urb, eurb);				if (ret == -EINPROGRESS)					usb_claim_bandwidth(urb->dev, urb, bustime, 0);			}		} else {	/* inherit from parent */			urb->bandwidth = eurb->bandwidth;			ret = uhci_submit_interrupt(uhci, urb, eurb);		}		break;	case PIPE_BULK:		ret = uhci_submit_bulk(uhci, urb, eurb);		break;	case PIPE_ISOCHRONOUS:		bustime = usb_check_bandwidth(urb->dev, urb);		if (bustime < 0) {			ret = bustime;			break;		}		ret = uhci_submit_isochronous(uhci, urb);		if (ret == -EINPROGRESS)			usb_claim_bandwidth(urb->dev, urb, bustime, 1);		break;	}	if (ret != -EINPROGRESS) {		/* Submit failed, so delete it from the urb_list */		struct urb_priv *urbp = urb->hcpriv;		list_del_init(&urbp->urb_list);		uhci_destroy_urb_priv(uhci, urb);	} else		ret = 0;out:	spin_unlock_irqrestore(&uhci->lock, flags);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5db539e49fc7471e23bf3c94ca304f008cb7b7f3/uhci-q.c/clean/drivers/usb/host/uhci-q.c