set_source_sink_config (struct zero_dev *dev, int gfp_flags) 
set_source_sink_config (struct zero_dev *dev, unsigned gfp_flags) 
set_source_sink_config (struct zero_dev *dev, int gfp_flags){	int			result = 0;	struct usb_ep		*ep;	struct usb_gadget	*gadget = dev->gadget;	gadget_for_each_ep (ep, gadget) {		const struct usb_endpoint_descriptor	*d;		/* one endpoint writes (sources) zeroes in (to the host) */		if (strcmp (ep->name, EP_IN_NAME) == 0) {			d = ep_desc (gadget, &hs_source_desc, &fs_source_desc);			result = usb_ep_enable (ep, d);			if (result == 0) {				ep->driver_data = dev;				if (source_sink_start_ep (ep, gfp_flags) != 0) {					dev->in_ep = ep;					continue;				}				usb_ep_disable (ep);				result = -EIO;			}		/* one endpoint reads (sinks) anything out (from the host) */		} else if (strcmp (ep->name, EP_OUT_NAME) == 0) {			d = ep_desc (gadget, &hs_sink_desc, &fs_sink_desc);			result = usb_ep_enable (ep, d);			if (result == 0) {				ep->driver_data = dev;				if (source_sink_start_ep (ep, gfp_flags) != 0) {					dev->out_ep = ep;					continue;				}				usb_ep_disable (ep);				result = -EIO;			}		/* ignore any other endpoints */		} else			continue;		/* stop on error */		ERROR (dev, "can't start %s, result %d\n", ep->name, result);		break;	}	if (result == 0)		DBG (dev, "buflen %d\n", buflen);	/* caller is responsible for cleanup on error */	return result;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5db539e49fc7471e23bf3c94ca304f008cb7b7f3/zero.c/buggy/drivers/usb/gadget/zero.c