VDEBUG (data->dev, "%s write %d IN, status %d\n", data->name, len, value); 
VDEBUG (data->dev, "%s write %zu IN, status %d\n", data->name, len, (int) value); 
ep_write (struct file *fd, const char __user *buf, size_t len, loff_t *ptr){	struct ep_data		*data = fd->private_data;	void			*kbuf;	ssize_t			value;	if ((value = get_ready_ep (fd->f_flags, data)) < 0)		return value;	/* halt any endpoint by doing a "wrong direction" i/o call */	if (!(data->desc.bEndpointAddress & USB_DIR_IN)) {		if ((data->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)				== USB_ENDPOINT_XFER_ISOC)			return -EINVAL;		DBG (data->dev, "%s halt\n", data->name);		spin_lock_irq (&data->dev->lock);		if (likely (data->ep != NULL))			usb_ep_set_halt (data->ep);		spin_unlock_irq (&data->dev->lock);		up (&data->lock);		return -EBADMSG;	}	/* FIXME writebehind for O_NONBLOCK and poll(), qlen = 1 */	value = -ENOMEM;	kbuf = kmalloc (len, SLAB_KERNEL);	if (!kbuf)		goto free1;	if (copy_from_user (kbuf, buf, len)) {		value = -EFAULT;		goto free1;	}	value = ep_io (data, kbuf, len);	VDEBUG (data->dev, "%s write %d IN, status %d\n",		data->name, len, value);free1:	up (&data->lock);	kfree (kbuf);	return value;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1bbc169621cbe502b9143a27eb12802a0f1d43a0/inode.c/clean/drivers/usb/gadget/inode.c