int				mem_flags 
unsigned			mem_flags 
static int dummy_urb_enqueue (	struct usb_hcd			*hcd,	struct usb_host_endpoint	*ep,	struct urb			*urb,	int				mem_flags) {	struct dummy	*dum;	struct urbp	*urbp;	unsigned long	flags;	if (!urb->transfer_buffer && urb->transfer_buffer_length)		return -EINVAL;	urbp = kmalloc (sizeof *urbp, mem_flags);	if (!urbp)		return -ENOMEM;	urbp->urb = urb;	dum = hcd_to_dummy (hcd);	spin_lock_irqsave (&dum->lock, flags);	if (!dum->udev) {		dum->udev = urb->dev;		usb_get_dev (dum->udev);	} else if (unlikely (dum->udev != urb->dev))		dev_err (dummy_dev(dum), "usb_device address has changed!\n");	list_add_tail (&urbp->urbp_list, &dum->urbp_list);	urb->hcpriv = urbp;	if (usb_pipetype (urb->pipe) == PIPE_CONTROL)		urb->error_count = 1;		/* mark as a new urb */	/* kick the scheduler, it'll do the rest */	if (!timer_pending (&dum->timer))		mod_timer (&dum->timer, jiffies + 1);	spin_unlock_irqrestore (&dum->lock, flags);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5db539e49fc7471e23bf3c94ca304f008cb7b7f3/dummy_hcd.c/clean/drivers/usb/gadget/dummy_hcd.c