if (port->bulk_in_buffer) { kfree (port->bulk_in_buffer); } 
kfree(port->bulk_in_buffer); 
static int ftdi_common_startup (struct usb_serial *serial){	struct usb_serial_port *port = serial->port[0];	struct ftdi_private *priv;		dbg("%s",__FUNCTION__);	priv = kmalloc(sizeof(struct ftdi_private), GFP_KERNEL);	if (!priv){		err("%s- kmalloc(%Zd) failed.", __FUNCTION__, sizeof(struct ftdi_private));		return -ENOMEM;	}	memset(priv, 0, sizeof(*priv));	spin_lock_init(&priv->rx_lock);        init_waitqueue_head(&priv->delta_msr_wait);	/* This will push the characters through immediately rather	   than queue a task to deliver them */	priv->flags = ASYNC_LOW_LATENCY;	/* Increase the size of read buffers */	if (port->bulk_in_buffer) {		kfree (port->bulk_in_buffer);	}	port->bulk_in_buffer = kmalloc (BUFSZ, GFP_KERNEL);	if (!port->bulk_in_buffer) {		kfree (priv);		return -ENOMEM;	}	if (port->read_urb) {		port->read_urb->transfer_buffer = port->bulk_in_buffer;		port->read_urb->transfer_buffer_length = BUFSZ;	}	/* Free port's existing write urb and transfer buffer. */	if (port->write_urb) {		usb_free_urb (port->write_urb);		port->write_urb = NULL;	}	if (port->bulk_out_buffer) {		kfree (port->bulk_out_buffer);		port->bulk_out_buffer = NULL;	}	usb_set_serial_port_data(serial->port[0], priv);		return (0);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1bc3c9e1e44c2059fe2ffa6ff70ad0a925d7b05f/ftdi_sio.c/clean/drivers/usb/serial/ftdi_sio.c