if (info->tx_buf) { kfree(info->tx_buf); info->tx_buf = NULL; } 
kfree(info->tx_buf); info->tx_buf = NULL; 
static void shutdown(SLMP_INFO * info){	unsigned long flags;	if (!(info->flags & ASYNC_INITIALIZED))		return;	if (debug_level >= DEBUG_LEVEL_INFO)		printk("%s(%d):%s synclinkmp_shutdown()\n",			 __FILE__,__LINE__, info->device_name );	/* clear status wait queue because status changes */	/* can't happen after shutting down the hardware */	wake_up_interruptible(&info->status_event_wait_q);	wake_up_interruptible(&info->event_wait_q);	del_timer(&info->tx_timer);	del_timer(&info->status_timer);	if (info->tx_buf) {		kfree(info->tx_buf);		info->tx_buf = NULL;	}	spin_lock_irqsave(&info->lock,flags);	reset_port(info); 	if (!info->tty || info->tty->termios->c_cflag & HUPCL) { 		info->serial_signals &= ~(SerialSignal_DTR + SerialSignal_RTS);		set_signals(info);	}	spin_unlock_irqrestore(&info->lock,flags);	if (info->tty)		set_bit(TTY_IO_ERROR, &info->tty->flags);	info->flags &= ~ASYNC_INITIALIZED;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/735d5661d5c5f023a78fbe68e771e261040ff1b7/synclinkmp.c/buggy/drivers/char/synclinkmp.c