if (info->tty) set_bit(TTY_IO_ERROR, &info->tty->flags); 
set_bit(TTY_IO_ERROR, &info->tty->flags); 
static int uart_startup(struct uart_state *state, int init_hw){	struct uart_info *info = state->info;	struct uart_port *port = state->port;	unsigned long page;	int retval = 0;	if (info->flags & UIF_INITIALIZED)		return 0;	/*	 * Set the TTY IO error marker - we will only clear this	 * once we have successfully opened the port.  Also set	 * up the tty->alt_speed kludge	 */	if (info->tty)		set_bit(TTY_IO_ERROR, &info->tty->flags);	if (port->type == PORT_UNKNOWN)		return 0;	/*	 * Initialise and allocate the transmit and temporary	 * buffer.	 */	if (!info->xmit.buf) {		page = get_zeroed_page(GFP_KERNEL);		if (!page)			return -ENOMEM;		info->xmit.buf = (unsigned char *) page;		uart_circ_clear(&info->xmit);	}	retval = port->ops->startup(port);	if (retval == 0) {		if (init_hw) {			/*			 * Initialise the hardware port settings.			 */			uart_change_speed(state, NULL);			/*			 * Setup the RTS and DTR signals once the			 * port is open and ready to respond.			 */			if (info->tty->termios->c_cflag & CBAUD)				uart_set_mctrl(port, TIOCM_RTS | TIOCM_DTR);		}		if (info->flags & UIF_CTS_FLOW) {			spin_lock_irq(&port->lock);			if (!(port->ops->get_mctrl(port) & TIOCM_CTS))				info->tty->hw_stopped = 1;			spin_unlock_irq(&port->lock);		}		info->flags |= UIF_INITIALIZED;		clear_bit(TTY_IO_ERROR, &info->tty->flags);	}	if (retval && capable(CAP_SYS_ADMIN))		retval = 0;	return retval;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a2436b22deac7834e0f87897b207a2dc1407dc40/serial_core.c/buggy/drivers/serial/serial_core.c